根据历史波动配置持仓权重 - 量化交易

量化交易 · 2019年03月02日 · 239 次阅读

主要根据老虎量化API, 实现一些量化的实例以及一些运行代码的结果分析。利用回归测试, 根据历史的下单记录计算回测的收益曲线,以及风险收益指标, 从而验证自己的投资习惯; 如果你对量化交易感兴趣 可以加微信: xiaobei060537 一起交流

策略思路

  • 使用几只 ETF 历史波动率的倒数作为权重, 按月进行调仓
  • 使用 标普500, 富实中国50, 以及黄金ETF三只ETF
  • 设置『month_start』这个方法在每个月初的第一个交易日开盘时执行一次。
  • 按照目标权重, 使用市价单下单

导读

本代码运行 老虎证券pc 端 量化交易环境, 运行前 可以点链接注册老虎证券 使用模拟账号 进行运行量化代码, 同时可以享受美股佣金8折永久优惠!港股手续费0佣金。

实例代码

import pandas as pd

def initialize(context):
    set_benchmark(symbol('SPY'))
    # 使用 标普500, 富实中国50, 以及黄金ETF三只ETF
    context.assets = symbols('GLD', 'FXI', 'SPY')
    # 定义两个时区
    context.remote_time_zone = 'US/Eastern'
    context.local_time_zome = 'Asia/Chongqing'
    # 定时运行方法:
    # 设置『month_start』这个方法在每个月初的第一个交易日开盘时执行一次。
    schedule_function(month_start, date_rule='month_start', time_rule='market_open')
    # 初始化持仓权重, 用于打印日志
    context.pre_weight = pd.Series(index=context.assets, data=0)

# 实现之前定义的month_start方法
def month_start(context, data):

    assets_price = data.history(context.assets, 'close', 10, '1d')

    assets_return = assets_price/assets_price.shift(1) - 1
    assets_vol = assets_return.std(skipna=True)

    weight = (1/assets_vol)/(1/assets_vol).sum()
    rebalance(context, weight)

def rebalance(context, target_weight):
    # 按照目标权重, 使用市价单下单
    for code in target_weight.keys():
        order_target_percent(symbol(code), target_weight[code])

运行结果

根据历史波动配置持仓权重 - 量化交易

如果您对美股 或者 港股也感兴趣, 或者想要了解如何开户, 可以加我wechat: xiaobei006006, 同时也可以拉您进美股交流群哦。
最后的最后 祝大家都有一个美好的投资生活哦。

大家也可以关注【美股指南】公众号, 即可获得《小白投资美股指南(雪球「岛」系列)》电子书

写在最后

友情提示 转载请注明出处: https://investguider.com/topics/1549
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册