返回首页
量化投资,高频交易,程序化交易学习必备~900+个(200G+)培训视频持续更新中!!!
当前位置: 主页 > 海龟交易 >

海龟交易法则程序化公式

时间:2016-07-22 16:09来源:未知 作者:杨清婉 点击:
海龟法则的由来 理查德丹尼斯是著名的商品投机家,1983年,他为了弄清楚伟大的交易员是天生造就的还是后天培养的而招募了13个人,教授给他们期货交易的基本概念,以及他自己的交易方法和原则。之所以把学员们称为海龟是基于两点:1.龟天生具有奔向海洋的本能

  海龟交易法则的由来

  理查德·丹尼斯是著名的商品投机家,1983年,他为了弄清楚伟大的交易员是天生造就的还是后天培养的而招募了13个人,教授给他们期货交易的基本概念,以及他自己的交易方法和原则。之所以把学员们称为‘海龟’是基于两点:1.龟天生具有奔向海洋的本能;2.只有极少数的海龟可以长大并颐养天年,绝大多数会在中途夭折。这跟金融交易市场的二八法则近似。

  海龟们在随后的四年中取得了年均复利80%的收益,成为了交易史上最著名的实验。而我们现在能看到的海龟交易法则是如何得来的呢?当时,海龟们认为应对理查德·丹尼斯负责,甚至商定在他们议定的10年保密协定于1993年终止后也不泄露这些法则。但是,有个别海龟为了谋取钱财而在网站上出售海龟交易法则,为了阻止这种知识产权的偷窃,原版海龟科蒂斯·费思和阿瑟·马多克决定在网站上将海龟交易法则免费公之于众。

  海龟交易法则三个特点:

  1.不管交易员在赚钱还是亏钱时都容易接受信号,因为它是一个被检测可以赚钱的交易系统。

  2.是一个完整的交易系统,其法则覆盖了交易的各个方面。系统对于交易中所涉及到的每项决策都会给出答案。

  3.是一个机械化的交易系统。正是由于其交易系统的完整性,所以,系统不给交易员留下一点主观想象决策的余地。

  海龟的核心交易原则:

  1.当价格突破20个交易周期最高点的时候入场。

  2.当价格跌破10个交易周期最低点时离场。

  海龟交易策略包括:入市指令、快速波动的市场、同步入市信号、买强卖弱和更换期满合约等。

  资金管理、交易研究以及交易心理学都是建议进一步学习海龟法则的范围。

  理查德·丹尼斯说过:“我总是说你们可以在报纸上发表我的交易法则,没有人会遵循它们。关键在于连续性和纪律。几乎任何人都能够罗列一张交易法则的清单,其中的80%与我们教授给我们的学员的一样。他们所不能做的是带给他们自信,甚至在情况恶化时仍坚持那些法则。”这既是海龟交易法则所得出的结论。而海龟们作为交易员成功的秘诀就是:海龟交易法则在于有信心有纪律连续地应用所学到的法则。

  input:trn(20,5,30),hn(20,5,30),ln(10,5,20);

  VARIABLE:dayCount=1,PositionCount=1,SellSign=0,dK=0;//加多空标志,1:多,-1:空 0:空仓

  VARIABLE:EntAndExitSign=1,EntPoint=0,ExitPoint=0;

  VARIABLE:N=0;

  N:=MA(TR,trn);

  BUYHHV:=HHV(H,hn);

  SELLLLV:=LLV(L,ln);

  sellshortllv:=llv(l,hn);

  buyshorthhv:=hhv(h,ln);

  IF BARPOS>=hn THEN

  BEGIN

  IF BARPOS=hn THEN

  IF DayCount=hn/2 OR BARPOS=hn THEN

  BEGIN{hn/2天调整N值}

  N:=((hn-1)*N+TR)/hn;{计算N值}

  DayCount:=2;

  END

  DayCount:=DayCount+1;

  EntPoint:=ENTERBARS+1;

  IF EntPoint=EntAndExitSign THEN

  BEGIN{说明STOP指令买进头寸成功}

  PositionCount:=PositionCount+1;{头寸计数}

  SellSign:=True;{可以平仓信号,如果达到指定的价格}

  END

  IF PositionCount=1 THEN BEGIN{第一头寸}

  HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模}

  if high=buyhhv then

  BEGIN

  dk:=1;

  多开1:BUY(1,HOW,STOP,BUYHHV);{在20日新高STOP指令买进}

  END;

  if low=sellshortllv then

  begin

  dk:=-1;

  空开1:buyshort(1,HOW,STOP,sellshortllv);{在20日新低STOP指令空开}

  end;

  END

  IF PositionCount=2 THEN BEGIN{如到第二头寸}

  HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模}

  if dk=1 then 多开2:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第一头寸)+0.5个N以STOP指令买进}

  if dk=-1 then 空开2:buyshort(1,HOW,STOP,ENTERPRICE-0.5*N);

  END

  IF PositionCount=3 THEN BEGIN{如到第三头寸}

  HOW:=CASH(0)*0.01/N;

  if dk=1 then 多开3:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第二头寸)+0.5个N以STOP指令买进}

  if dk=-1 then 空开3:buyshort(1,HOW,STOP,ENTERPRICE-0.5*N);

  END

  IF PositionCount=4 THEN BEGIN

  HOW:=CASH(0)*0.01/N;

  if dk=1 then 多开4:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);

  if dk=-1 then 空开4:buyshort(1,HOW,STOP,ENTERPRICE-0.5*N);

  END

  IF SellSign=True THEN

  BEGIN

  ExitPoint:=EXITBARS+1;

  if dk=1 then

  begin

  IF ExitPoint=EntAndExitSign THEN

  BEGIN {说明卖出成功}

  PositionCount:=1;{头寸计算复原}

  SellSign:=False;

  dk:=0;

  END

  IF ENTERPRICE-2*N then

  SELL(1,100%,STOP,SELLLLV);{退出离盈利头寸}

  ELSE

  SELL(1,100%,STOP,ENTERPRICE-2*N);{退出亏损头寸}

  end;

  if dk=-1 then

  begin

  IF ExitPoint=EntAndExitSign THEN

  BEGIN

  PositionCount:=1;

  SellSign:=False;

  dk:=0;

  END

  IF ENTERPRICE+2*N then

  sellSHORT(1,100%,STOP,BUYSHORTHHV);

  ELSE

  sellSHORT(1,100%,STOP,ENTERPRICE+2*N);

  END;

  END

 

  END;

(责任编辑:admin)
量化投资,高频交易,程序化交易学习必备~900+个(200G+)培训视频持续更新中!!!
------分隔线----------------------------
云量化商城
如果您会开发策略,请进!大量项目等待与您合作!
推荐内容
量化投资培训