您現(xiàn)在的位置:程序化交易>> 期貨公式>> (MC)multicharts>> MC知識>>正文內(nèi)容

代碼問題,求教 [MC]

  • MC用戶求助:

    只是想實現(xiàn) 止損后,反手交易,并且手數(shù)翻倍。

    所以手數(shù)應該是1 2 4 8 16 32 這樣倍增。

    但現(xiàn)在總是出現(xiàn)跳躍,不知道是為什么。

    不用一定在哪個品種上測試,小品種上都可以測試,螺紋,大豆,豆粕等等都行。

    例如下圖1 2 4 然后沒有8 直接跳到了16 。

    32后 直接跳到了128

    是和模式(bar內(nèi)?)有關?還是代碼?

    ?

    全部代碼如下:

    inputs:

    ? ? ? ? ?Zhiyingx( 9999) , ? ? ?

    Zhiying( 9999) ,

    Zhisun( 5 ) ;

    ? ? ? ?

    ?

    variables:

    ? ?nn(4) ,

    ? ? ? ? ?ww(3) , ? ? ??

    ?

    var0( 0 ), var1( 0 ), var2( 0 ),Length( 20 ),Zhiyings( 20 ),TNUMSEQLOSS( 0 ),

    shoushua( 1 ), shoushu(1), yici(0)?

    ;

    ?

    yici=0;

    var0 = BollingerBand( Close, Length, 1 ) ;

    var1 = BollingerBand( Close , Length, -1 ) ;

    var2 = Average(C,Length);

    ?

    ?

    condition3 = TIME>900 and TIME<2300;

    ?

    condition1 = c[1]>o[1] and c[1]>Average(c[1],26) and condition3 ;;

    ?

    condition2 = c[1]<o[1] and c[1]<Average(c[1],26) and condition3 ;;

    ?

    ?

    if TNUMSEQLOSS<ww then begin

    Zhiyings=Zhiying;

    end

    Else begin

    ? ? ? ?Zhiyings=Zhiyingx;

    end;

    ?

    if TNUMSEQLOSS<nn then begin

    shoushua=shoushu;

    end

    Else begin

    ? ? ? ? shoushu=0.5;

    ? ? ? ?end;

    ?

    ?

    ?

    ?

    condition4 = CurrentBar > 1 and H>Zhisun+avgentryprice and marketposition=-1 and condition3 ;

    ?

    condition5 = CurrentBar > 1 and l<avgentryprice-Zhisun and marketposition=1 and condition3 ;

    ?

    ?

    condition6 = CurrentBar > 1 and l<avgentryprice-Zhiyings and marketposition=-1 and condition3 ;

    ?

    condition7 = CurrentBar > 1 and h>avgentryprice+Zhiyings and marketposition=1 and condition3 ;

    ?

    ?

    if (condition1 or yici[1]=1) ?and marketposition=0 then begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    Buy ( "kai1" ) 1 Contract next bar at Open stop ;

    ?

    end;

    ?

    if (condition2 or yici[1]=-1) and marketposition=0 ?then begin

    ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    Sell Short ( "kai2" ) 1 Contract ?next bar at Open stop ;

    ?

    end;

    ?

    if condition4 ?and condition5=False then begin

    ? ? ? ? ? TNUMSEQLOSS=TNUMSEQLOSS+1;

    ? ? ? ? ? print(date," ",time," buy ?TNUMSEQLOSS: ",TNUMSEQLOSS);

    ? ? ? ? ? shoushu=Power(2,TNUMSEQLOSS);?

    ? ? ? ? ? ?print(date," ",time," buy ?shoushu: ",shoushu);

    ?

    buy ?( "kui1" ) ?shoushu Contracts ? ? ? next bar at Zhisun+avgentryprice ?stop ;

    end;

    ?

    ?

    ?

    if condition5 and condition4=False then begin

    ?

    ? ? ? ? ? ?TNUMSEQLOSS=TNUMSEQLOSS+1;

    ? ? ? ? ? ?print(date," ",time," sellshort TNUMSEQLOSS: ",TNUMSEQLOSS);

    ? ? ? ? ? ?shoushu=Power(2,TNUMSEQLOSS);?

    ? ? ? ? ? ?print(date," ",time," sellshort shoushu: ",shoushu);

    sellshort( "kui2" ) ?shoushu Contracts ? ?next bar at avgentryprice-Zhisun ?stop ;

    ?

    end;

    ?

    ?

    if condition6 then begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    buytocover ?( "ying1" ) next bar at avgentryprice-Zhiyings ?stop ;

    shoushu=1;

    TNUMSEQLOSS=0;

    yici=-1;

    end;

    ?

    if condition7 then begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    sell( "ying2" ) next bar at avgentryprice+Zhiyings stop ;

    shoushu=1;

    ? ? ? ?TNUMSEQLOSS=0;

    ? ? ? ?yici=1;

    end;

    ?

    ?

  • MC回復討論一:

    if condition4 ?and condition5=False then begin

    ? ? ? ? ? TNUMSEQLOSS=TNUMSEQLOSS+1;

    ? ? ? ? ? print(date," ",time," buy ?TNUMSEQLOSS: ",TNUMSEQLOSS);

    ? ? ? ? ? shoushu=Power(2,TNUMSEQLOSS);?

    ? ? ? ? ? ?print(date," ",time," buy ?shoushu: ",shoushu);

    buy ?( "kui1" ) ?shoushu Contracts ? ? ? next bar at Zhisun+avgentryprice ?stop ;

    end;

    if condition5 and condition4=False then begin

    ? ? ? ? ? ?TNUMSEQLOSS=TNUMSEQLOSS+1;

    ? ? ? ? ? ?print(date," ",time," sellshort TNUMSEQLOSS: ",TNUMSEQLOSS);

    ? ? ? ? ? ?shoushu=Power(2,TNUMSEQLOSS);?

    ? ? ? ? ? ?print(date," ",time," sellshort shoushu: ",shoushu);

    sellshort( "kui2" ) ?shoushu Contracts ? ?next bar at avgentryprice-Zhisun ?stop ;

    end;

    以上代碼是您累加變量TNUMSEQLOSS的地方,也是問題的所在,之所以出現(xiàn)”跳躍“是因為重復累加,也就是條件連續(xù)滿足導致連續(xù)累加;因為您使用的是條件單,而條件單不一定委托出去就會成交,但是您在條件成立時肯定會累加變量TNUMSEQLOSS,所以導致兩者的不一致;解決方法是,確定條件單成交之后再累加變量TNUMSEQLOSS

    ?

    ?

  • MC回復討論二:

    判斷是否成交的方法有很多:

    第一、在沒有加倉的情況下,通過當根bar的marketposition與前一根bar的marketposition的信息對比進行判斷,但是由于marketposition沒有回溯的功能,但您需要先將marketposition的值賦值給新建的變量mp,然后通過判斷mp[1]<>mp

    第二、在有加倉的情況下,您還需要考慮關鍵字currentcontracts等持倉部位信息的變化,以此來判斷。

    第三、策略屬性中有重新計算的設置,可以勾選“委托單成交”,這個用來判斷委托單成交有點復雜,不建議使用。

    ?

  • MC回復討論三:

    inputs:

    ? ? ? ? ?Zhiyingx( 9999) , ? ? ?

    Zhiying( 9999) ,

    Zhisun( 5 ) ;

    ? ? ? ?

    ?

    variables:

    ? ?nn(4) ,

    ? ? ? ? ?ww(3) , ? ? ??

    ?

    var0( 0 ), var1( 0 ), var2( 0 ),Length( 20 ),Zhiyings( 20 ),TNUMSEQLOSS( 0 ),

    shoushua( 1 ), shoushu(1), yici(0), mp(0);;

    ?

    yici=0;

    var0 = BollingerBand( Close, Length, 1 ) ;

    var1 = BollingerBand( Close , Length, -1 ) ;

    var2 = Average(C,Length);

    ?

    ?

    condition3 = TIME>900 and TIME<2300;

    ?

    condition1 = c[1]>o[1] and c[1]>Average(c[1],26) and condition3 ;;

    ?

    condition2 = c[1]<o[1] and c[1]<Average(c[1],26) and condition3 ;;

    ?

    ?

    if TNUMSEQLOSS<ww then begin

    Zhiyings=Zhiying;

    end

    Else begin

    ? ? ? ?Zhiyings=Zhiyingx;

    end;

    ?

    if TNUMSEQLOSS<nn then begin

    shoushua=shoushu;

    end

    Else begin

    ? ? ? ? shoushu=0.5;

    ? ? ? ?end;

    ?

    ?

    mp=marketposition;

    ?

    condition4 = CurrentBar > 1 and H>Zhisun+avgentryprice and marketposition=-1 and condition3 ?and ?mp[1]<>mp;

    ?

    condition5 = CurrentBar > 1 and l<avgentryprice-Zhisun and marketposition=1 and condition3 and ?mp[1]<>mp;

    ?

    ?

    condition6 = CurrentBar > 1 and l<avgentryprice-Zhiyings and marketposition=-1 and condition3 ;

    ?

    condition7 = CurrentBar > 1 and h>avgentryprice+Zhiyings and marketposition=1 and condition3 ;

    ?

    ?

    if (condition1 or yici[1]=1) ?and marketposition=0 then begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    Buy ( "kai1" ) 1 Contract next bar at Open stop ;

    ?

    end;

    ?

    if (condition2 or yici[1]=-1) and marketposition=0 ?then begin

    ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    Sell Short ( "kai2" ) 1 Contract ?next bar at Open stop ;

    ?

    end;

    ?

    if condition4 ?and condition5=False then begin

    ? ? ? ? ? TNUMSEQLOSS=TNUMSEQLOSS+1;

    ? ? ? ? ? print(date," ",time," buy ?TNUMSEQLOSS: ",TNUMSEQLOSS);

    ? ? ? ? ? shoushu=Power(2,TNUMSEQLOSS);?

    ? ? ? ? ? ?print(date," ",time," buy ?shoushu: ",shoushu);

    ?

    buy ?( "kui1" ) ?shoushu Contracts ? ? ? next bar at Zhisun+avgentryprice ?stop ;

    ?

    ?

    end;

    ?

    ?

    ?

    if condition5 and condition4=False then begin

    ?

    ? ? ? ? ? ?TNUMSEQLOSS=TNUMSEQLOSS+1;

    ? ? ? ? ? ?print(date," ",time," sellshort TNUMSEQLOSS: ",TNUMSEQLOSS);

    ? ? ? ? ? ?shoushu=Power(2,TNUMSEQLOSS);?

    ? ? ? ? ? ?print(date," ",time," sellshort shoushu: ",shoushu);

    sellshort( "kui2" ) ?shoushu Contracts ? ?next bar at avgentryprice-Zhisun ?stop ;

    ?

    end;

    ?

    ?

    if condition6 then begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    buytocover ?( "ying1" ) next bar at avgentryprice-Zhiyings ?stop ;

    shoushu=1;

    TNUMSEQLOSS=0;

    yici=-1;

    end;

    ?

    if condition7 then begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    sell( "ying2" ) next bar at avgentryprice+Zhiyings stop ;

    shoushu=1;

    ? ? ? ?TNUMSEQLOSS=0;

    ? ? ? ?yici=1;

    end;

    ?

    ?

    ?

    我按照您說的改了,這樣基本交易1,2次就不交易了,這是怎么回事?

    ?

  • MC回復討論四:

    inputs:

    ? ? ? ? ?Zhiyingx( 9999) , ? ? ?

    Zhiying( 9999) ,

    Zhisun( 5 ) ;

    ? ? ? ?

    ?

    variables:

    ? ?nn(4) ,

    ? ? ? ? ?ww(3) , ? ? ??

    ?

    var0( 0 ), var1( 0 ), var2( 0 ),Length( 20 ),Zhiyings( 20 ),TNUMSEQLOSS( 0 ),

    shoushua( 1 ), shoushu(1), yici(0), mp(0);;

    ?

    yici=0;

    var0 = BollingerBand( Close, Length, 1 ) ;

    var1 = BollingerBand( Close , Length, -1 ) ;

    var2 = Average(C,Length);

    ?

    ?

    condition3 = TIME>900 and TIME<2300;

    ?

    condition1 = c[1]>o[1] and c[1]>Average(c[1],26) and condition3 ;;

    ?

    condition2 = c[1]<o[1] and c[1]<Average(c[1],26) and condition3 ;;

    ?

    ?

    if TNUMSEQLOSS<ww then begin

    Zhiyings=Zhiying;

    end

    Else begin

    ? ? ? ?Zhiyings=Zhiyingx;

    end;

    ?

    if TNUMSEQLOSS<nn then begin

    shoushua=shoushu;

    end

    Else begin

    ? ? ? ? shoushu=0.5;

    ? ? ? ?end;

    ?

    ?

    mp=marketposition;

    ?

    condition4 = CurrentBar > 1 and H>Zhisun+avgentryprice and marketposition=-1 and condition3 ?and ?mp[1]<>mp;

    ?

    condition5 = CurrentBar > 1 and l<avgentryprice-Zhisun and marketposition=1 and condition3 and ?mp[1]<>mp;

    ?

    ?

    condition6 = CurrentBar > 1 and l<avgentryprice-Zhiyings and marketposition=-1 and condition3 ;

    ?

    condition7 = CurrentBar > 1 and h>avgentryprice+Zhiyings and marketposition=1 and condition3 ;

    ?

    ?

    if (condition1 or yici[1]=1) ?and marketposition=0 then begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    Buy ( "kai1" ) 1 Contract next bar at Open stop ;

    ?

    end;

    ?

    if (condition2 or yici[1]=-1) and marketposition=0 ?then begin

    ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    Sell Short ( "kai2" ) 1 Contract ?next bar at Open stop ;

    ?

    end;

    ?

    if condition4 ?and condition5=False then begin

    ? ? ? ? ? TNUMSEQLOSS=TNUMSEQLOSS+1;

    ? ? ? ? ? print(date," ",time," buy ?TNUMSEQLOSS: ",TNUMSEQLOSS);

    ? ? ? ? ? shoushu=Power(2,TNUMSEQLOSS);?

    ? ? ? ? ? ?print(date," ",time," buy ?shoushu: ",shoushu);

    ?

    buy ?( "kui1" ) ?shoushu Contracts ? ? ? next bar at Zhisun+avgentryprice ?stop ;

    ?

    ?

    end;

    ?

    ?

    ?

    if condition5 and condition4=False then begin

    ?

    ? ? ? ? ? ?TNUMSEQLOSS=TNUMSEQLOSS+1;

    ? ? ? ? ? ?print(date," ",time," sellshort TNUMSEQLOSS: ",TNUMSEQLOSS);

    ? ? ? ? ? ?shoushu=Power(2,TNUMSEQLOSS);?

    ? ? ? ? ? ?print(date," ",time," sellshort shoushu: ",shoushu);

    sellshort( "kui2" ) ?shoushu Contracts ? ?next bar at avgentryprice-Zhisun ?stop ;

    ?

    end;

    ?

    ?

    if condition6 then begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    buytocover ?( "ying1" ) next bar at avgentryprice-Zhiyings ?stop ;

    shoushu=1;

    TNUMSEQLOSS=0;

    yici=-1;

    end;

    ?

    if condition7 then begin

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    sell( "ying2" ) next bar at avgentryprice+Zhiyings stop ;

    shoushu=1;

    ? ? ? ?TNUMSEQLOSS=0;

    ? ? ? ?yici=1;

    end;

    ?

    ?

    ?

    我按照您說的改了,這樣基本交易1,2次就不交易了,這是怎么回事?

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯(lián)系技術人員 QQ: 511411198  點擊這里給我發(fā)消息進行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內(nèi)容
主站蜘蛛池模板: 国产性天天综合网| 成人国产精品视频频| 亚洲色图综合网| 蜜桃视频一区二区三区| 国产综合精品一区二区三区| 中文字幕国产视频| 果冻传媒七夕潘甜甜在线播放| 免费一级特黄特色大片在线| 车车好快的车车流水网站入口| 国产精品美女久久久免费| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品综合麻豆 | 一区二区视频在线观看| 日韩成年人视频| 亚洲日韩小电影在线观看| 精品久久久久久亚洲综合网| 国产内射在线激情一区| 影音先锋男人看片资源| 天天狠天天透天干天天怕∴| 中文字幕在线观看不卡| 日韩欧美成人免费中文字幕| 亚洲成av人片在线观看天堂无码| 看AV免费毛片手机播放| 国产ts亚洲人妖| 黄色毛片一级片| 国产精品大bbwbbwbbw| aaaaa级毛片| 性欧美丰满熟妇XXXX性久久久| 久久精品中文无码资源站| 欧美成人性色区| 图片区亚洲色图| 中文字幕在线不卡| 日韩精品中文字幕无码专区 | 伊人久久国产精品| 老司机67194免费观看| 国产天堂亚洲精品| 老色鬼久久综合第一| 国色天香网在线| youjizz国产| 成人片黄网站色大片免费| 久久国产欧美日韩精品| 最近免费中文字幕4|