您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

行情永远在上下分形之间来回转换,实现过程中出现问题 [开拓者 TB]

  • 咨询内容: 思路是这样的,上分形,第三根K线大于左边两根和右边两根线高点,(下分形与之相反),收盘价高于上分形开多单,止损为收盘小于开仓K线最低价,多单止损后,认为假突破,即开空单,空单止损是开仓K线最高价,止损后,认为是假突破,开多单,如果多单没有被止损,直到下分形被突破,平多单后,开空单,空单止损
    开仓K线最高价,空单止损后认为是假突破,开回多单。写了代码,但是问题多,请各位指点,我刚开好TB 权限,处于学习阶段

     

  • TB技术人员: 这里出现两个问题,1  止损K线如果用普通变量,止损语句不能执行,要用序列变量才能实现止损功能
    ,为什么? 2 在突破下分形时开了空单,但之后为什么又开了多单,难道是收盘价大于上一次上分形的高点?  
      Vars
    NumericSeries  Myn1;
        NumericSeries  Myn2;
    Numeric EXITPRICE1;
    Numeric MINPOINT1;
    Numeric  MYENTRYPRICE;
    Numeric  TAKEPROFITSET(40);
        NumericSeries mylow;
    NumericSeries myhigh;
    Numeric  StopPrice(10);
    BOOLSERIES CONDITION1(FALSE);
    BOOLSERIES CONDITION2(FALSE);
    Begin
        If(High[3]>high[4] and high[3]>high[5] and high[3]>high[2] and high[3]>high[1])
           {
                 Myn1=High[3];
                }Else
               {
                 Myn1=Myn1[1];
            }


    Condition1=c[1]>myn1[1];
    If(Condition1)
    {

    Buy(0,o+2);

    }   
    If(MarketPosition==1 AND BARSSINCEENTRY==0)
    {mylow=l;}

    If(MarketPosition==1 AND BARSSINCEENTRY>=1 and  c[1]<mylow[1])
    {
    EXITPRICE1=c[1];
    Sellshort(0,EXITPRICE1);
    }
    If(MarketPosition==-1 AND BARSSINCEENTRY==0)
    {myhigh=h;}
    If(MarketPosition==-1 AND BARSSINCEENTRY>=1 and  c>myhigh[1])
    {myhigh=h;
    Buy(0,MYHIGH);}

    {If(l[3]<l[4] and l[3]<l[5] and l[3]<l[2] and l[3]<l[1])
          {
                 Myn2=l[3];
                }Else
               {
                 Myn2=Myn2[1];
            }
    CONDITION2=(c[1]<myn2[1] and MarketPosition==1 );
       
    If(CONDITION2)
    {ExitPrice1=c[1];
    SellShort(0,EXITPRICE1);}}


    1 low1 多头 m1605 2015/12/09 23:05 2306 2015/12/09 23:15 2303 1 10.00 (40.00) (40.00) (1.73%) (1.73%)
    2 low1 空头 m1605 2015/12/09 23:15 2303 2015/12/09 23:20 2308 1 10.00 (60.00) (100.00) (2.61%) (4.34%)
    3 low1 多头 m1605 2015/12/09 23:20 2308 2015/12/10 09:05 2294 1 10.00 (150.00) (250.00) (6.50%) (10.84%)
    4 low1 空头 m1605 2015/12/10 09:05 2294 2015/12/10 09:40 2297 1 10.00 (40.00) (290.00) (1.74%) (12.58%)
    5 low1 多头 m1605 2015/12/10 09:40 2297 2015/12/10 09:45 2296 1 10.00 (20.00) (310.00) (0.87%) (13.45%)
    6 low1 空头 m1605 2015/12/10 09:45 2296 2015/12/10 09:55 2298 1 10.00 (30.00) (340.00) (1.31%) (14.76%)
    7 low1 多头 m1605 2015/12/10 09:55 2298 2015/12/10 10:00 2298 1 10.00 (10.00) (350.00) (0.44%) (15.20%)
    8 low1 空头 m1605 2015/12/10 10:00 2298 2015/12/10 21:05 2302 1 10.00 (50.00) (400.00) (2.18%) (17.37%)
    9 low1 多头 m1605 2015/12/10 21:05 2302 2015/12/10 21:10 2300 1 10.00 (30.00) (430.00) (1.30%) (18.67%)
    10 low1 空头 m1605 2015/12/10 21:10 2300 2015/12/10 21:15 2300 1 10.00 (10.00) (440.00) (0.43%) (19.11%)
    11 low1 多头 m1605 2015/12/10 21:15 2300 2015/12/11 09:35 2306 1 10.00 50.00 (390.00) 2.17% (16.94%)
    12 low1 空头 m1605 2015/12/11 09:35 2306 2015/12/11 09:40 2308 1 10.00 (30.00) (420.00) (1.30%) (18.24%)
    13 low1 多头 m1605 2015/12/11 09:40 2308 2015/12/11 09:45 2306 1 10.00 (30.00) (450.00) (1.30%) (19.54%)
    14 low1 空头 m1605 2015/12/11 09:45 2306 2015/12/11 10:05 2309 1 10.00 (40.00) (490.00) (1.73%) (21.27%)
    15 low1 多头 m1605 2015/12/11 10:05 2309 2015/12/14 21:05 2337 1 10.00 270.00 (220.00) 11.69% (9.58%)
    16 low1 空头 m1605 2015/12/14 21:05 2337 2015/12/14 21:10 2343 1 10.00 (70.00) (290.00) (3.00%) (12.57%)
    17 low1 多头 m1605 2015/12/14 21:10 2343 2015/12/15 10:55 2359 1 10.00 150.00 (140.00) 6.40% (6.17%)
    18 low1 空头 m1605 2015/12/15 10:55 2359 2015/12/15 11:00 2359 1 10.00 (10.00) (150.00) (0.42%) (6.59%)
    19 low1 多头 m1605 2015/12/15 11:00 2359 2015/12/15 11:00 2359 1 10.00 (10.00) (160.00) (0.42%) (7.02%)
    20 low1 空头 m1605 2015/12/15 11:00 2359 2015/12/15 22:50 2339 1 10.00 190.00 30.00 8.05% 1.04%

     

  • TB客服: 为什么没人帮忙啊?

     

  • 网友回复: 大神们去哪里了?

     

  • 网友回复:
    cts2015deng 发表于 2015-12-17 15:42
    大神们去哪里了?

    您的策略有点绕来绕去,调试还是需要花时间的。一根BAR又是多又是空,肯定会存在各种各样的问题,这个有时间可以慢慢去试。

    简单看了一下,主要问题应该是两个:

    一是序列变量的初始化没考虑
    比如:进场的 Condition1条件的计算,Myn1的初始值是0,那在图表的开始几根BAR即使还没形成任何分形Condition1也会满足,这样莫名其妙就开多了。

    二是多空开仓平仓语句都有多条,而公式中并不是每条交易指令执行后序列变量都去做相应修改,这样就导致了信号的紊乱
    比如:您问到的突破下分形开了空单后又立即开了多单,就是因为这个开仓指令几乎是放在公式的最后部分,开仓后,止损要判断的myhigh并没有做任何修改,这样到了下一根BAR,myhigh要么是初始值0,要么是上一轮交易的值传递下来的,因此就会出现立即又开多了。

    总之,类似的问题应该不少,需要好好去对照信号不断地调试。


 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容