今天是 :
您的位置: 网站首页 > AI量化 >

    期货量化交易策略菲阿里四价(期货)

    阅读次数:     发布时间:2024-08-07 01:59:39

    1. 原理

    菲阿里四价指的是:昨日高点、昨日低点、昨天收盘、今天开盘四个价格。

    2. 策略逻辑

    回测标的:SHFE.rb2010
    回测期:2020-02-07 至 2020-04-15
    回测初始资金:200万
    注意:若修改回测期,需要修改对应的回测标的。

     

    1. from __future__ import print_function, absolute_import
    2. """
    3. 下轨=昨日最低点;
    4. 如果没有持仓,且现价大于了昨天最高价做多,小于昨天最低价做空。
    5. 如果有空头持仓,当价格上涨超过开盘价止损。
    6. 注意:
    7. 2:实盘中,如果在收盘的那一根bar或tick触发交易信号,需要自行处理,实盘可能不会成交。
    8.  
    9.  
    10.  
    11. # 设置标的
    12. # 订阅一分钟线
    13. # 记录开仓次数,保证一天只开仓一次
    14. # 记录当前时间
    15. # 如果当前时间点是交易时间段,则直接执行algo获取历史数据,以防直接进入on_bar()导致context.history_data未定义
    16. algo(context)
    17.  
    18. schedule(schedule_func = algo, date_rule = '1d', time_rule = '09:00:00')
    19. def algo(context):
    20. context.history_data = history_n(symbol=context.symbol, frequency = '1d', end_time = context.now,
    21. def on_bar(context,bars):
    22. bar = bars[0]
    23. data = context.history_data
    24. position_long = context.account().position(symbol=context.symbol, side=PositionSide_Long)
    25. # 如果是回测模式
    26. # 开盘价直接在data最后一个数据里取到,前一交易日的最高和最低价为history_data里面的倒数第二条中取到
    27. high = data.loc[0, 'high']
    28. # 如果是实时模式
    29. # 开盘价通过current取到
    30. # 实时模式不会返回当天的数据,所以history_data里面的最后一条数据是前一交易日的数据
    31. low = data.loc[-1, 'low']
    32.  
    33.  
    34. if position_long: # 多头持仓小于开盘价止损。
    35. order_volume(symbol=context.symbol, volume=1, side=OrderSide_Sell,
    36. print('以市价单平多仓')
    37. if bar.close > open:
    38. order_type=OrderType_Market, position_effect=PositionEffect_Close)
    39. else: # 没有持仓。
    40. # 开多
    41. order_type=OrderType_Market, position_effect=PositionEffect_Open)
    42. context.count = 1
    43. # 开空
    44. order_type=OrderType_Market, position_effect=PositionEffect_Open)
    45. context.count = 1
    46.  
    47. if context.now.hour == 14 and context.now.minute == 59:
    48. print('全部平仓')
    49. if __name__ == '__main__':
    50. strategy_id策略ID,由系统生成
    51. mode实时模式:MODE_LIVE回测模式:MODE_BACKTEST
    52. backtest_start_time回测开始时间
    53. backtest_adjust股票复权方式不复权:ADJUST_NONE前复权:ADJUST_PREV后复权:ADJUST_POST
    54. backtest_commission_ratio回测佣金比例
    55. '''
    56. filename='main.py',
    57. token='token_id',
    58. backtest_end_time='2020-09-01 16:00:00',
    59. backtest_initial_cash=100000,
    60. backtest_slippage_ratio=0.0001)

    回测期累计收益率为-4.05%,年化收益率为-6.03%。沪深300指数收益率为16.61%,整体跑输指数。最大回撤为4.34%,胜率为25.66%。

     

    标的回测期年化收益率最大回撤SHFE.rb20102020.02.07-2020.04.15-6.03%4.34%SHFE.ag20102020.02.07-2020.04.1538.03%7.97%SHFE.ni20102020.02.07-2020.04.15-22.46%22.85%SHFE.zn20102020.02.07-2020.04.15-15.93%12.01%SHFE.rb20102020.04.07-2020.06.15-3.40%1.37%SHFE.rb20102020.06.07-2020.08.15-13.96%2.32%SHFE.rb20102020.08.07-2020.10.15-11.38%2.18%

    注:此策略只用于学习、交流、演示,不构成任何投资建议。