2、策略基本思路策略思想是:当短期均线上穿长期均线时,形成金叉,此时买入基金。当短期均线下穿长期均线时,形成死叉,此时卖出基金。研究表明,双均线系统虽然简单,但只要严格执行,也能长期盈利。
3、基金回测
- 证券代码列表中的交易市场需要选择 CN_FUND.
- 关于基金的代码表示:证券代码列表中交易市场选择CN_FUND后,如果想要某只特定的基金数据,可以在股票代码列表里输入相应的基金代码,如果不知道自己想要的基金的代码表示,可以在basic_info_CN_FUND表内读取相关基本信息进行查询。
广发纳指100ETF:159941.ZOF
华夏新汽车ETF:515030.HOF
5、仓位等权重,单个基金50%
6、策略源码
- # 回测引擎:初始化函数,只执行一次
- def m2_initialize_bigquant_run(context):
- # 系统已经设置了默认的交易手续费和滑点,要修改手续费可使用如下函数
- context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))
- # 回测引擎:每日数据处理函数,每天执行一次
- def m2_handle_data_bigquant_run(context, data):
- # 按日期过滤得到今日的预测数据
-
- for sid in context.instruments:
- # 标的为字符串格式
- sid = context.symbol(sid)# 标的为字符串格
- price = data.current(sid, 'price') # 最新价格
- short_mavg = data.history(sid, 'price', 3, '1d').mean() # 短期均线
- long_mavg = data.history(sid, 'price', 30, '1d').mean() # 长期均线
- cur_position = context.portfolio.positions[sid].amount # 持仓数量
- weight = 1 / len(context.instruments) # 等权重
- #交易逻辑
- # 如果短期均线大于长期均线形成金叉,并且没有持仓,并且该股票可以交易
- if short_mavg > long_mavg and cur_position == 0 and data.can_trade(sid):
- context.order_target_percent(sid, weight) # 买入
- print('{}全仓买入{}股票'.format(data.current_dt.strftime('%Y-%m-%d'),sid.symbol))
- # 如果短期均线小于长期均线形成死叉,并且有持仓,并且该股票可以交易
- elif short_mavg < long_mavg and cur_position > 0 and data.can_trade(sid):
- context.order_target_percent(sid, 0) # 全部卖出
- print('{}卖出{}股票'.format(data.current_dt.strftime('%Y-%m-%d'),sid.symbol))
-
-
- # 回测引擎:准备数据,只执行一次
- def m2_prepare_bigquant_run(context):
- pass
- # 回测引擎:每个单位时间开始前调用一次,即每日开盘前调用一次。
- def m2_before_trading_start_bigquant_run(context, data):
- pass
- m7 = M.instruments.v2(
- start_date='2017-01-20',
- end_date='2021-09-01',
- market='CN_FUND',
- instrument_list="""159941.ZOF
- 515030.HOF""",
- max_count=0
- )
- m2 = M.trade.v4(
- instruments=m7.data,
- start_date='',
- end_date='',
- initialize=m2_initialize_bigquant_run,
- handle_data=m2_handle_data_bigquant_run,
- prepare=m2_prepare_bigquant_run,
- before_trading_start=m2_before_trading_start_bigquant_run,
- volume_limit=0,
- order_price_field_buy='open',
- order_price_field_sell='open',
- capital_base=1000000,
- auto_cancel_non_tradable_orders=True,
- data_frequency='daily',
- price_type='真实价格',
- product_type='股票',
- plot_charts=True,
- backtest_only=False,
- benchmark=''
- )


雷达卡





京公网安备 11010802022788号







