分享

海龟汤法则Turtle Soup重写

 格物致知MLX 2017-05-27
    几个月博客没更新了,向各位简单汇报一下目前情况,目前主要精力放在策略开发中,实盘手动交易在回撤中,本年确实有点难。过几天本月一结束,把这几个月业绩一并公布。
   
    很多网友问我海龟汤代码的问题,http://blog.sina.com.cn/s/blog_53b2d1710100jp1p.html。那段来自网上的代码确实相当复杂难懂,而且走不通,大前天晚上重写了一遍,与各位分享,效果自已测试吧。
==================================================================================================

规则:

   *今天市场创20天以来的新低;

   *前一个20天新低必须出现在至少4个交易日以前;(需要考虑barnumber)

    *在市场创20天以来新低以后,在前期低点以上5-10点放置停损买入单(当天有效);

    博主按:这里必明确创新低多少距离才放停损买入单,否则创新低距离很小(比如一个最小波动点)就放置停损单的话,很容易被触发。

    这里用atr来计算突破距离,做为突破的确认。

    *如果买入停损成交,马上放置在当天日低以下放置GTC止损卖单;

    *当头寸开始获利,使用追踪停损Trail保护利润,其中一些交易可能持续2-3小时,一些可能持续几天;

代码:    

inputs:BreakedDays(4),FactorAtr(0.2),len(20);

vars:intrabarpersist var1(0),intrabarpersist var2(0),var3(0),var4(0),Bcon1(false),Scon1(false),mp(0),LenAtr(20);


{----entrycondition------}

var3=lowest(L,len);

var4=Highest(h,len);


if date<>date[1] then

begin

  if L data2<var3[1] data2 then var1=1

  else var1=var1[1]+1;

  if H data2>var4[1] data2 then var2=1

  else var2=var2[1]+1;

  Bcon1=var1>=BreakedDays;

  Scon1=var2>=BreakedDays;

end;


value1=AvgTrueRange(LenAtr) data2*FactorAtr;

condition1=Bcon1=true and L<var3 data2 and (var3 data2-L)>=value1 and marketposition=0;

condition2=Scon1=true and H>var4 data2 and (H-var4 data2)>=value1 and marketposition=0; 


{----entry----}

if condition1 then buy next bar at var3 data2+MinmovePoint(5) stop;

if condition2 then sellshort next bar at var4 data2-MinmovePoint(5) stop;


{----trail stop----}

mp=marketposition;


//----trail stop value----

if marketposition=1 and mp[1]=0 then

    value2=(entryprice-LowD(0)-MinmovePoint(1));

if marketposition=-1 and mp[1]=0 then

    value3=(HighD(0)-entryprice+MinmovePoint(1));


//L trail stop

if marketposition=1 then

begin

 if mp[1]=0 then

 value4=high 

 else value4=maxlist(high,value4[1]);

 sell ("LtrailStop") next bar at value4-value2 stop;

end;


//S trail stop

if marketposition=-1 then 

begin

  if mp[1]=0 then

  value5=low

  else value5=minlist(low,value5[1]);

  buytocover ("STrailStop") next bar at value5+value3 stop;

end;


 print(date,"|",time,"|",marketposition,"|",var1,"|",var2,"|",Bcon1,"|",Scon1,"|",value2,"|",value3);


     

    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多