楼主: _wallstreetcat_
1410 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-11-15 15:37:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
导语
几乎所有的宽客(Quant)都听说过海龟交易策略,该策略以海龟交易法则为核心。海龟交易法则,起源于八十年代的美国,是一套简单有效的交易法则。这个法则以及使用这个法则的人的故事被写成了一本书——《海龟交易法则》,这是一本入门量化投资的经典书籍。

海龟交易规则
海龟交易的具体规则是:
  • 当今天的收盘价大于过去20个交易日中的最高价时,以收盘价买入;
  • 买入后,当收盘价小于过去10个交易日中的最低价时,以收盘价卖出。

这篇文章我们只介绍如何快速编写海龟交易策略(代码如下),暂不涉及复杂的头寸管理和风险控制。

  1. # 策略参数设置
  2. instruments = ['600519.SHA']  # 选择的投资标的
  3. start_date = '2014-07-17'     # 回测开始日期
  4. end_date = '2017-11-08'   # 回测结束日期

  5. # 策略主体函数
  6. def initialize(context):
  7.     context.set_commission(PerDollar(0.0015))  # 手续费设置
  8.    
  9. def handle_data(context, data):
  10.    
  11.     if context.trading_day_index < 20: # 在20个交易日以后才开始真正运行
  12.         return
  13.       
  14.     sid = context.symbol(instruments[0])
  15.     price = data.current(sid, 'price')  # 当前价格
  16.     high_point = data.history(sid, 'price', 20, '1d').max()  # 20日高点
  17.     low_point = data.history(sid, 'price', 10, '1d').min()  # 10日低点   
  18.         
  19.     # 持仓
  20.     cur_position = context.portfolio.positions[sid].amount  
  21.                
  22.     # 交易逻辑
  23.     #  最新价大于等于20日高点,并且处于空仓状态,并且该股票当日可以交易
  24.     if price >= high_point  and cur_position == 0 and data.can_trade(sid):  
  25.         context.order_target_percent(sid, 1)
  26.     #  最新价小于等于10日低点,并且持有股票,并且该股票当日可以交易
  27.     elif price <= low_point  and cur_position > 0 and data.can_trade(sid):
  28.         context.order_target_percent(sid, 0)

  29. # 策略回测接口   
  30. m=M.trade.v3(
  31.     instruments=instruments,
  32.     start_date=start_date,
  33.     end_date=end_date,
  34.     initialize=initialize,
  35.     handle_data=handle_data,
  36.     order_price_field_buy='open', # 买入股票订单成交价为收盘价
  37.     order_price_field_sell='open', # 卖出股票订单成交价为收盘价
  38.     capital_base=float("1.0e6"), # 初始资金为100万
  39.     benchmark='000300.INDX',) # 比较基准为沪深300指数
复制代码

好了,海龟交易策略就是这么简单,但它确实可以长期盈利,是不是很神奇?


二维码

扫码加我 拉你入群

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

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

关键词:Instruments Instrument Commission benchmark positions

已有 1 人评分经验 收起 理由
xujingtang + 60 精彩帖子

总评分: 经验 + 60   查看全部评分

沙发
current94 发表于 2021-11-22 16:03:55
看上去好像是在做突破法~有点怕怕……去年夏天干这种事亏了不少钱

藤椅
_wallstreetcat_ 企业认证  发表于 2021-11-23 09:29:08
current94 发表于 2021-11-22 16:03
看上去好像是在做突破法~有点怕怕……去年夏天干这种事亏了不少钱
这是比较简单的交易法则,每种市场都有不同的风格,顺应风格即可

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

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