技术指标计算 - 量化交易

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

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

策略思路

  • 使用 talib 计算个股的均线
  • 如果10日均线大于25日均线则全仓买入
  • 如果10日均线小于25日均线的0.98则空仓
  • 基准与交易标的相同,超额收益完全来源于择时

导读

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

实例代码


import talib as ta

# 策略初始化方法, 只在开始执行回测时运行一次
def initialize(context):
    print('初始化策略')
    # 使用 SPY 作为策略基准
    set_benchmark(symbol('SPY'))
    # 定义要交易的标的
    context.asset = symbol('jd')

# 在每个交易日开始前运行方法
def before_trading_start(context, data):
    # 获取过去25天的收盘价
    history = data.history(assets=context.asset,
                            fields='close',
                            bar_count=25,
                            frequency='1d')
    log.info(history.tail())
    # 使用 talib 计算短期和长期移动均线
    short_ma = ta.MA(history.values,timeperiod=10)[-1]
    long_ma = ta.MA(history.values,timeperiod=25)[-1]
    # 将计算好的数据放入context 中, 方便handle_data 使用
    context.short_ma = short_ma
    context.long_ma = long_ma

# 每个 bar 结束时运行一次
def handle_data(context, data):
    short_ma = context.short_ma
    long_ma = context.long_ma
    print(short_ma, long_ma)
    total_value = context.portfolio.portfolio_value
    # 如果10日均线大于25日均线, 满仓买入
    if short_ma > long_ma:
        log.info('多头趋势,全仓买入')
        order_target_value(context.asset, total_value)

    # 如果10日均线小于25日均线的0.98, 不持仓
    elif short_ma < 0.98 * long_ma:
        log.info('空头趋势,不持仓')
        order_target_value(context.asset, 0)

运行结果

量化交易

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

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

写在最后

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