没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论










双均线策略(期货)
1. #coding=utf-8
2. from__future__importprint_function,absolute_import
3. fromgm.apiimport*
4. importtalib
5. importtime
6.
7. '''
8. 本策略以DCE.i1801为交易标的,根据其一分钟(即60s频度)bar数据建立双均线模型,
9. 短周期为30,长周期为60,当短期均线由上向下穿越长期均线时做空,
10. 当短期均线由下向上穿越长期均线时做多,每次开仓前先平掉所持仓位,再开仓。
11. 回测数据为:DCE.i1801的60s频度bar数据
12. 回测时间为:2017-09-0109:00:00到2017-09-3015:00:00
13. '''
14.
15. definit(context):
16. context.FAST=30#
短周期
17. context.SLOW=60#
长周期
18. context.symbol='DCE.i1801'#
订阅&交易标的
19. context.period=context.SLOW+1#
订阅数据滑窗长度
20. subscribe(context.symbol,'60s',count=context.period)#
订阅行情
21.
22. defon_bar(context,bars):
23. print(bars[0].bob)
24. #获取数据
25. prices=context.data('DCE.i1801','60s',context.period,
fields='close')
26. #计算长短周期均线
27. fast_avg=talib.SMA(prices.values.reshape(context.period),
context.FAST)
28. slow_avg=talib.SMA(prices.values.reshape(context.period),
context.SLOW)
29.
30. #均线下穿,做空
31. ifslow_avg[-2]<fast_avg[-2]andslow_avg[-1]>=fast_avg[-1]:
32. #平多仓
33. order_target_percent(symbol=context.symbol,percent=0,
双均线策略(期货)
-2-本文档使用掘金量化构建

position_side=1,order_type=2)
34. #开空仓
35. order_target_percent(symbol=context.symbol,percent=0.1,
position_side=2,order_type=2)
36.
37. #均线上穿,做多
38. iffast_avg[-2]<slow_avg[-2]andfast_avg[-1]>=slow_avg[-1]:
39. #平空仓
40. order_target_percent(symbol=context.symbol,percent=0,
position_side=2,order_type=2)
41. #开多仓
42. order_target_percent(symbol=context.symbol,percent=0.1,
position_side=1,order_type=2)
43.
44.
45. defon_execution_report(context,execrpt):
46. #打印委托执行回报
47. print(execrpt)
48.
49.
50. if__name__=='__main__':
51. '''
52. strategy_id策略ID,由系统生成
53. filename文件名,请与本文件名保持一致
54. mode实时模式:MODE_LIVE回测模式:MODE_BACKTEST
55. token绑定计算机的ID,可在系统设置-密钥管理中生成
56. backtest_start_time回测开始时间
57. backtest_end_time回测结束时间
58. backtest_adjust股票复权方式不复权:ADJUST_NONE前复权:ADJUST_PREV后复
权:ADJUST_POST
59. backtest_initial_cash回测初始资金
60. backtest_commission_ratio回测佣金比例
61. backtest_slippage_ratio回测滑点比例
62. '''
63. run(strategy_id='strategy_id',
64. filename='main.py',
65. mode=MODE_BACKTEST,
66. token='token_id',
67. backtest_start_time='2017-09-0109:00:00',
68. backtest_end_time='2017-09-3015:00:00',
69. backtest_adjust=ADJUST_NONE,
70. backtest_initial_cash=10000000,
71. backtest_commission_ratio=0.0001,
72. backtest_slippage_ratio=0.0001)
双均线策略(期货)
-3-本文档使用掘金量化构建

双均线策略(期货)
-4-本文档使用掘金量化构建

alpha对冲(股票+期货)
1. #coding=utf-8
2. from__future__importprint_function,absolute_import,
unicode_literals
3. fromgm.apiimport*
4.
5. '''
6. 本策略每隔1个月定时触发计算SHSE.000300成份股的过去的EV/EBITDA并选取EV/EBITDA
大于0的股票
7. 随后平掉排名EV/EBITDA不在最小的30的股票持仓并等权购买EV/EBITDA最小排名在前30的
股票
8. 并用相应的CFFEX.IF对应的真实合约等额对冲
9. 回测数据为:SHSE.000300和他们的成份股和CFFEX.IF对应的真实合约
10. 回测时间为:2017-07-0108:00:00到2017-10-0116:00:00
11. '''
12.
13.
14. definit(context):
15. #每月第一个交易日09:40:00的定时执行algo任务
16. schedule(schedule_func=algo,date_rule='1m',
time_rule='09:40:00')
17.
18. #设置开仓在股票和期货的资金百分比(期货在后面自动进行杠杆相关的调整)
19. context.percentage_stock=0.4
20. context.percentage_futures=0.4
21.
22.
23. defalgo(context):
24. #获取当前时刻
25. now=context.now
26. #获取上一个交易日
27. last_day=get_previous_trading_date(exchange='SHSE',date=now)
28. #获取沪深300成份股
29. stock300=get_history_constituents(index='SHSE.000300',
start_date=last_day,
30. end_date=last_day)
[0]['constituents'].keys()
31. #获取上一个工作日的CFFEX.IF对应的合约
32. index_futures=get_continuous_contracts(csymbol='CFFEX.IF',
start_date=last_day,end_date=last_day)[-1]['symbol']
33. #获取当天有交易的股票
34. not_suspended_info=get_history_instruments(symbols=stock300,
alpha对冲(股票+期货)
-5-本文档使用掘金量化构建
剩余53页未读,继续阅读
资源评论


blue30000
- 粉丝: 7
- 资源: 6
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
