人人爽天天爽夜夜爽qc-人人爽天天爽夜夜爽曰-人人天天爱天天做天天摸-人人天天夜夜-色网站在线-色网站在线看

您現(xiàn)在的位置:程序化交易>> 期貨公式>> 交易開(kāi)拓者(TB)>> 開(kāi)拓者知識(shí)>>正文內(nèi)容

如何避免“FOR,WHILE,IF,ELSE中包含序列函數(shù),可能存在潛在的邏輯錯(cuò)誤。” [開(kāi)拓者 TB]

  • 咨詢(xún)內(nèi)容: 如FOR,WHILE,IF,ELSE中包含序列函數(shù),導(dǎo)致條件不滿(mǎn)足時(shí),序列函數(shù)的賦值就沒(méi)有被執(zhí)行,缺省繼承了上一個(gè)序列值即x=x[1]; 解決的方法是將序列函數(shù)放在FOR,WHILE,IF,ELSE之外賦值,而在FOR,WHILE,IF,ELSE語(yǔ)句內(nèi)引用相關(guān)變量。如:
    Vars
       NumericSeries myBar;
    Begin
       If (myBar/2==IntPart(myBar/2))
       {   myBar = CurrentBar;
           // 其他語(yǔ)句
       }
       Commentary ("myBay1 "+Text(myBar)+" "+Text(myBar[1])+" "+Text(myBar[2])+" "+Text(myBar[3])+" "+Text(myBar[4]));
       Commentary ("Sum1: "+ Text(myBar+myBar[1]+myBar[2]+myBar[3]+myBar[4]));
    End
    在這個(gè)程序中,由于myBar = CurrentBar; 語(yǔ)句是偶數(shù)時(shí)被賦值,因此顯示的是連續(xù)的偶數(shù)對(duì)。
    把賦值語(yǔ)句放到IF語(yǔ)句之前之外,則能解決不能每個(gè)Bar都賦值的問(wèn)題,如下:
    Vars
       NumericSeries myBar;
    Begin
       myBar = CurrentBar;
       If (myBar/2==IntPart(myBar/2))
       {
           // 其他語(yǔ)句
       }
       Commentary ("myBay1 "+Text(myBar)+" "+Text(myBar[1])+" "+Text(myBar[2])+" "+Text(myBar[3])+" "+Text(myBar[4]));
       Commentary ("Sum1: "+ Text(myBar+myBar[1]+myBar[2]+myBar[3]+myBar[4]));
    End

     

  • TB技術(shù)人員: 如果函數(shù)中含有序列函數(shù),當(dāng)有條件調(diào)用函數(shù)時(shí),也會(huì)出現(xiàn)序列函數(shù)不完全賦值的情況,如:
    // 應(yīng)用主程序 Test1
    Vars
       NumericSeries myBar;
    Begin
       myBar = CurrentBar;
       Commentary ("myBay1 "+Text(myBar)+" "+Text(myBar[1])+" "+Text(myBar[2])+" "+Text(myBar[3])+" "+Text(myBar[4]));
       Commentary ("Sum1: "+ Text(myBar+myBar[1]+myBar[2]+myBar[3]+myBar[4]));
       if (myBar/2==IntPart(myBar/2)) Test2(myBar); //調(diào)用函數(shù)Test2
    End

    / 函數(shù) Test2
    Params
       NumericSeries myBar;
    Vars
    Begin
       if (myBar/2==IntPart(myBar/2)) Return False;
       Commentary ("myBay2 "+Text(myBar)+" "+Text(myBar[1])+" "+Text(myBar[2])+" "+Text(myBar[3])+" "+Text(myBar[4]));
       Commentary ("Sum2: "+ Text(myBar+myBar[1]+myBar[2]+myBar[3]+myBar[4]));
       Return True;
    End
    此時(shí),顯示如下圖:
    Test1.JPG (24.64 KB, 下載次數(shù): 0) 2013-9-14 08:11:22 上傳 下載次數(shù): 0

    如何將序列函數(shù)完整的傳遞給子函數(shù)呢?可把條件調(diào)用改為無(wú)條件調(diào)用,而把相應(yīng)條件放入子函數(shù)中,如下示例:
    // 應(yīng)用主程序 Test1a
    Vars
       NumericSeries myBar;
    Begin
       myBar = CurrentBar;
       Commentary ("myBay1 "+Text(myBar)+" "+Text(myBar[1])+" "+Text(myBar[2])+" "+Text(myBar[3])+" "+Text(myBar[4]));
       Commentary ("Sum1: "+ Text(myBar+myBar[1]+myBar[2]+myBar[3]+myBar[4]));
       test2a(myBar); //無(wú)條件調(diào)用test2a
    End

    // 函數(shù) Test2a
    Params
       NumericSeries myBar;
    Vars
    Begin
       if (myBar/2 ==IntPart(myBar/2)) Return False; //當(dāng)條件滿(mǎn)足是返回
       Commentary ("myBay2 "+Text(myBar)+" "+Text(myBar[1])+" "+Text(myBar[2])+" "+Text(myBar[3])+" "+Text(myBar[4]));
       Commentary ("Sum2: "+ Text(myBar+myBar[1]+myBar[2]+myBar[3]+myBar[4]));
       Return True;
    End
    結(jié)果如下圖:
    Test2.JPG (25.66 KB, 下載次數(shù): 0) 2013-9-14 08:19:08 上傳 下載次數(shù): 0

     

  • TB客服: 仔細(xì)觀察這連個(gè)圖,發(fā)現(xiàn)有一個(gè)錯(cuò)誤:第一個(gè)程序在偶數(shù)Bar上顯示,而第二個(gè)程序卻在奇數(shù)Bar上顯示,顯然邏輯上發(fā)生了錯(cuò)誤。
    原因是小可在修改程序時(shí)疏忽而至。由于Test1a是有條件調(diào)用Test2a,因此把條件移到函數(shù)中時(shí),要把邏輯值取反,即把
    if (myBar/2 == IntPart(myBar/2)) Return False;
    改為
    if (myBar/2 != IntPart(myBar/2)) Return False;
    是不是這樣?
    分享給大家,也借此經(jīng)常提醒自己,程序中盡量要避免編譯時(shí)出現(xiàn)“FOR,WHILE,IF,ELSE中包含序列函數(shù)......”的警示提示。

 

有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友

可聯(lián)系技術(shù)人員 QQ: 1145508240  有需要幫忙請(qǐng)點(diǎn)擊這里留言!!!進(jìn)行 有償 編寫(xiě)!不貴!點(diǎn)擊查看價(jià)格!


【字體: 】【打印文章】【查看評(píng)論

相關(guān)文章

    沒(méi)有相關(guān)內(nèi)容
主站蜘蛛池模板: 亚洲一级在线 | 亚洲在成人网在线看 | 日本综合欧美一区二区三区 | 日韩国产欧美成人一区二区影院 | 网站在线观看 | 国产精品一区二区久久精品 | 丝袜美女网站 | 久久窝窝国产精品午夜看15 | 深夜福利影院在线观看 | 美日韩毛片 | 亚洲午夜久久久精品影院视色 | 狠狠综合视频精品播放 | 正在播放国产一区 | 丝袜免费网站 | 成人午夜在线 | 有b吗在线视频 | 一个人视频资源在线观看www | 一级a毛片免费 | 国产伦码精品一区二区三区 | 成人三级黄色片 | 欧美日韩国产专区 | 天天色综合图片 | 五月天堂网 | 在线观看免费黄网站 | 性生大片一级毛片免费观看 | 午夜视频在线网站 | 亚洲精品国自产拍影院 | a视频在线免费观看 | 亚洲日本1区2区3区二区 | 国产精品久久久久久久人人看 | 免费高清特黄a 大片 | 国产不卡一区二区三区免费视 | 亚洲欧美一级久久精品 | 日本久久久久久久中文字幕 | 夜夜躁狠狠躁日日躁视频 | 一个人免费看的视频www | 久久中文字幕免费视频 | ririai99在线视频观看 | 永久免费在线播放 | 笫一次爽女人免费视频 | 成人爱做日本视频免费 |