您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

[求助]关于止盈止损单的开仓手数问题。 [金字塔]

  • 咨询内容:
    此主题相关图片如下:qq图片20140318094929.jpg

    如图,
    两线交叉成型做单,平空与开多条件同,平多与开空条件同。根据软件例子编的止盈止损策略,加上了限制开仓手数。VARIABLE:kdss=0,kkss=0;发现貌似开多(平多),与开空(平空)各只开一次,然后没交易了,跟设想的每个波段交易一次想法不同。错误在哪里?及如何改呢?

    A1:stkindi('','ND',0,22,45);A2:=stkindi('','XD',0,17,0);

    BUY1:=A1>A2;SELL1:=A1<A2;
    ZSDS:=3;     {止损点数}//以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0VARIABLE:YDZY=1;     {移动止盈总开关,1为开,0为关}VARIABLE:HIGHPRICE=0,LOWPRICE=0; {保存开仓后的最高价、最低价}VARIABLE:DHCDS=3,KHCDS=3;   {多、空单回撤点数}VARIABLE:DYLDS=7,KYLDS=7;   {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}VARIABLE:Z3B1:=1;     {赚3保1开关}VARIABLE:kdss=0,kkss=0;{开多开空次数}
    //持有空单IF HOLDING<0 THEN BEGIN IF BUY1 THEN BEGIN   //平空单  空平:SELLSHORT(1,0,MARKET),ORDERQUEUE; END  //止损 IF C-ENTERPRICE>=ZSDS THEN BEGIN  空损:SELLSHORT(1,0,MARKET),ORDERQUEUE; END  //移动止盈 IF YDZY=1 THEN BEGIN  //每周期判断是否创新低  IF L<LOWPRICE THEN BEGIN   LOWPRICE:=L;  END     //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利  IF ENTERPRICE-LOWPRICE>=KYLDS THEN BEGIN   IF L-LOWPRICE>=KHCDS THEN BEGIN  //回撤超过3点    空赢:SELLSHORT(1,0,MARKET);   END   END  END  //赚3保1 IF Z3B1=1 THEN BEGIN  IF ENTERPRICE-LOWPRICE>=3 THEN BEGIN   IF ENTERPRICE-L<=1.2 THEN BEGIN    空保:SELLSHORT(1,0,MARKET);   END  END ENDEND
    //开多单
    IF HOLDING>=0 AND TIME<143000 AND kdss=0 THEN BEGIN  IF BUY1 THEN BEGIN   多开:BUY(1,1,MARKET);   HIGHPRICE:=ENTERPRICE;  //将开仓价保存到最高价    kdss:=1;  END END //持有多单IF HOLDING>0 THEN BEGIN IF SELL1 THEN BEGIN  {平多单}  多平:SELL(1,0,MARKET),ORDERQUEUE; END  //多单管理 //止损 IF ENTERPRICE-C>=ZSDS THEN BEGIN  多损:SELL(1,0,MARKET),ORDERQUEUE; END //移动止盈 IF YDZY=1 THEN BEGIN  //每周期判断是否创新高  IF H>HIGHPRICE THEN BEGIN   HIGHPRICE:=H;  END    //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利  IF HIGHPRICE-ENTERPRICE>=DYLDS THEN BEGIN   IF HIGHPRICE-H>=DHCDS THEN BEGIN  //回撤超过3点    多赢:SELL(1,0,MARKET);   END   END  END //赚3保1 IF Z3B1=1 THEN BEGIN  IF HIGHPRICE-ENTERPRICE>=3 THEN BEGIN   IF H-ENTERPRICE<=1.2 THEN BEGIN    多保:SELL(1,0,MARKET);   END  END ENDEND//开空单IF HOLDING>=0 AND TIME<143000 AND kkss=0 THEN BEGIN  IF SELL1 THEN BEGIN   空开:BUYSHORT(1,1,MARKET);   LOWPRICE:=ENTERPRICE;     kkss:=1;  END  END

     

  • 金字塔客服: 在平仓语句里面把你的kdss和kkss都重新赋值为0,你开仓后就一直是1不变动了

     

  • 用户回复: 各段开平止损止盈仓语句都加上了赋值,现在有新一段波段,但没任何信号了。

    此主题相关图片如下:qq图片20140318110944.jpg



    A1:stkindi('','ND',0,22,45);A2:=stkindi('','XD',0,17,0);
    BUY1:=ND>XD and kdss=0;SELL1:=ND<XD and kkss=0;

    //空单管理
    //持有空单IF HOLDING<0 AND kkss=0 THEN BEGIN IF BUY1 THEN BEGIN   //平空单  空平:SELLSHORT(1,0,MARKET),ORDERQUEUE;  kkss:=1; END  //止损 IF C-ENTERPRICE>=ZSDS AND kkss=0 THEN BEGIN  空损:SELLSHORT(1,0,MARKET),ORDERQUEUE;  kkss:=1; END  //移动止盈 IF YDZY=1 THEN BEGIN  //每周期判断是否创新低  IF L<LOWPRICE THEN BEGIN   LOWPRICE:=L;  END    //赚3保1 IF Z3B1=1 THEN BEGIN  IF ENTERPRICE-LOWPRICE>=3 AND kkss=0 THEN BEGIN   IF ENTERPRICE-L<=1.2 THEN BEGIN    空保:SELLSHORT(1,0,MARKET);    kkss:=1;   END  END ENDEND
      //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利  IF ENTERPRICE-LOWPRICE>=KYLDS AND kkss=0 THEN BEGIN   IF L-LOWPRICE>=KHCDS THEN BEGIN  //回撤超过3点    空赢1:SELLSHORT(1,0,MARKET);    kkss:=1;   END   END  END 
    [此贴子已经被作者于2014/3/18 11:11:27编辑过]

     

  • 网友回复:

    。。。平仓赋值为0啊,你开仓赋值为1,平仓也赋值为1,这个能有信号?

     

     

  • 网友回复: 赋值为1,有信号了,但也太多了吧。
    此主题相关图片如下:qq图片20140318113452.jpg


    此主题相关图片如下:qq图片20140318113805.jpg

    而且,有些本身处于开空条件运行中了,但为什么在不确定的位置中又有新开空仓呢?按理在之前刚达成空条件时已经空一手了的。

    此主题相关图片如下:qq图片20140318113531.jpg



    如何解决? [此贴子已经被作者于2014/3/18 12:02:38编辑过]

 

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

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


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

相关文章

    没有相关内容