楼主: _wallstreetcat_
1798 2

[交易策略] 双均线基金策略 [推广有奖]

  • 0关注
  • 36粉丝

已卖:114份资源

讲师

9%

还不是VIP/贵宾

-

威望
0
论坛币
88 个
通用积分
41.5574
学术水平
14 点
热心指数
13 点
信用等级
13 点
经验
6402 点
帖子
257
精华
0
在线时间
235 小时
注册时间
2017-3-16
最后登录
2024-10-20

楼主
_wallstreetcat_ 企业认证  发表于 2021-12-7 18:29:55 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
1、导语本文分享了一个简单的基于双均线的基金策略,主要是使用平台的回测引擎做一个基金的回测。
2、策略基本思路策略思想是:当短期均线上穿长期均线时,形成金叉,此时买入基金。当短期均线下穿长期均线时,形成死叉,此时卖出基金。研究表明,双均线系统虽然简单,但只要严格执行,也能长期盈利。
3、基金回测
  • 证券代码列表中的交易市场需要选择 CN_FUND.
  • 关于基金的代码表示:证券代码列表中交易市场选择CN_FUND后,如果想要某只特定的基金数据,可以在股票代码列表里输入相应的基金代码,如果不知道自己想要的基金的代码表示,可以在basic_info_CN_FUND表内读取相关基本信息进行查询。

4、标的

广发纳指100ETF:159941.ZOF

华夏新汽车ETF:515030.HOF

5、仓位

等权重,单个基金50%

6、策略源码

  1. # 回测引擎:初始化函数,只执行一次
  2. def m2_initialize_bigquant_run(context):
  3.     # 系统已经设置了默认的交易手续费和滑点,要修改手续费可使用如下函数
  4.     context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))
  5. # 回测引擎:每日数据处理函数,每天执行一次
  6. def m2_handle_data_bigquant_run(context, data):
  7.     # 按日期过滤得到今日的预测数据
  8.    
  9.     for sid in context.instruments:
  10.         # 标的为字符串格式
  11.         sid = context.symbol(sid)# 标的为字符串格
  12.         price = data.current(sid, 'price') # 最新价格
  13.         short_mavg = data.history(sid, 'price', 3, '1d').mean() # 短期均线
  14.         long_mavg = data.history(sid, 'price', 30, '1d').mean() # 长期均线
  15.         cur_position =  context.portfolio.positions[sid].amount # 持仓数量
  16.         weight = 1 / len(context.instruments) # 等权重

  17.         #交易逻辑
  18.         # 如果短期均线大于长期均线形成金叉,并且没有持仓,并且该股票可以交易
  19.         if short_mavg > long_mavg and cur_position == 0 and data.can_trade(sid):  
  20.             context.order_target_percent(sid, weight) # 买入
  21.             print('{}全仓买入{}股票'.format(data.current_dt.strftime('%Y-%m-%d'),sid.symbol))
  22.         # 如果短期均线小于长期均线形成死叉,并且有持仓,并且该股票可以交易
  23.         elif short_mavg < long_mavg and cur_position > 0 and data.can_trade(sid):  
  24.             context.order_target_percent(sid, 0) # 全部卖出
  25.             print('{}卖出{}股票'.format(data.current_dt.strftime('%Y-%m-%d'),sid.symbol))
  26.         
  27.         

  28. # 回测引擎:准备数据,只执行一次
  29. def m2_prepare_bigquant_run(context):
  30.     pass

  31. # 回测引擎:每个单位时间开始前调用一次,即每日开盘前调用一次。
  32. def m2_before_trading_start_bigquant_run(context, data):
  33.     pass


  34. m7 = M.instruments.v2(
  35.     start_date='2017-01-20',
  36.     end_date='2021-09-01',
  37.     market='CN_FUND',
  38.     instrument_list="""159941.ZOF
  39. 515030.HOF""",
  40.     max_count=0
  41. )

  42. m2 = M.trade.v4(
  43.     instruments=m7.data,
  44.     start_date='',
  45.     end_date='',
  46.     initialize=m2_initialize_bigquant_run,
  47.     handle_data=m2_handle_data_bigquant_run,
  48.     prepare=m2_prepare_bigquant_run,
  49.     before_trading_start=m2_before_trading_start_bigquant_run,
  50.     volume_limit=0,
  51.     order_price_field_buy='open',
  52.     order_price_field_sell='open',
  53.     capital_base=1000000,
  54.     auto_cancel_non_tradable_orders=True,
  55.     data_frequency='daily',
  56.     price_type='真实价格',
  57.     product_type='股票',
  58.     plot_charts=True,
  59.     backtest_only=False,
  60.     benchmark=''
  61. )
复制代码




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:金策略 双均线 Instruments Instrument Commission

沙发
bbcer314 发表于 2021-12-8 09:27:24
没用,均线会滞后,需要优化,简单使用赚不了大钱。

藤椅
_wallstreetcat_ 企业认证  发表于 2021-12-8 11:42:04
bbcer314 发表于 2021-12-8 09:27
没用,均线会滞后,需要优化,简单使用赚不了大钱。
是的,还需要不断的调整。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2026-1-25 10:14