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

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

開拓者兩個(gè)波峰和波谷的程序源碼 [開拓者 TB]

  • 咨詢內(nèi)容: 我編了一段求前兩個(gè)波峰和波谷的程序(可在交易指令下測(cè)試),
    但效果還不滿意,希望能得到高手的改進(jìn),謝謝!
    1. Params

    2.         Numeric MyMinLength(5);

    3.         // GV10 最近波峰與當(dāng)前Bar的Bar計(jì)數(shù)

    4.         // GV11 最近波峰的值

    5.         // GV12 最近波谷與當(dāng)前Bar的Bar計(jì)數(shù)

    6.         // GV13 最近波谷的值

    7.         // GV14 前一個(gè)波峰與當(dāng)前Bar的Bar計(jì)數(shù)

    8.         // GV15 前一個(gè)波峰的值

    9.         // GV16 前一個(gè)波谷與當(dāng)前Bar的Bar計(jì)數(shù)

    10.         // GV17 前一個(gè)波谷的值

    11.        

    12. Vars

    13.         Numeric MyLength;

    14.         Numeric MyHighBar;

    15.         Numeric MyHigh;

    16.         Numeric MyLow;

    17.         Numeric MyLowBar;

    18. Begin

    19.  

    20.         If (BarStatus==0)

    21.         {        SetGlobalVar(10,0); SetGlobalVar(11,High); //最近波峰Bar,High

    22.                 SetGlobalVar(12,0); SetGlobalVar(13,Low);  //最近波谷Bar,Low

    23.                 SetGlobalVar(14,0); SetGlobalVar(15,High);

    24.                 SetGlobalVar(16,0); SetGlobalVar(17,Low);

    25.         }

    26.        

    27.         MyLength = GetGlobalVar(12)+1;//取上一波谷到當(dāng)前Bar的個(gè)數(shù)

    28.         MyLength = IIF(MyLength<=MyMinLength,MyMinLength+1,MyLength);//至少保持最小的波峰距離為5個(gè)Bar

    29.         MyHighBar = HighestBar(High,MyLength);

    30.         MyHigh = Highest(High,MyLength);

    31.        

    32.         If (GetGlobalVar(10)+1-MyHighBar>=MyMinLength or MyHigh>GetGlobalVar(11))

    33.         {        If (GetGlobalVar(10)+1-MyHighBar>=MyMinLength)

    34.                 {        SetGlobalVar(14,GetGlobalVar(10)); //保留前一個(gè)波峰

    35.                         SetGlobalVar(15,GetGlobalVar(11));

    36.                 }

    37.                 SetGlobalVar(10,MyHighBar);//從上個(gè)低谷開始的最高價(jià)所在的Bar序數(shù)

    38.                 SetGlobalVar(11,MyHigh);   //從上個(gè)低谷開始的最高價(jià)

    39.         } Else SetGlobalVar(10,GetGlobalVar(10)+1);

    40.  

    41.         MyLength = GetGlobalVar(10)+1;//取上一波峰到當(dāng)前Bar的個(gè)數(shù)

    42.         MyLength = IIF(MyLength<MyMinLength,MyMinLength+1,MyLength);

    43.         MyLowBar = LowestBar(Low,MyLength);

    44.         MyLow = Lowest(Low,MyLength);

    45.         If (GetGlobalVar(12)+1-MyLowBar>=MyMinLength or MyLow<GetGlobalVar(13))

    46.         {        If (GetGlobalVar(12)+1-MyLowBar>=MyMinLength)

    47.                 {        SetGlobalVar(16,GetGlobalVar(12)); //保留前一個(gè)波谷

    48.                         SetGlobalVar(17,GetGlobalVar(13));

    49.                 }

    50.                 SetGlobalVar(12,MyLowBar);//從上個(gè)波峰開始的最低價(jià)所在的Bar序數(shù)

    51.                 SetGlobalVar(13,MyLow);//從上個(gè)波峰開始的最低價(jià)

    52.         } Else SetGlobalVar(12,GetGlobalVar(12)+1);

    53.  

    54.         //驗(yàn)證顯示

    55.         Commentary("CurrBar "+Text(CurrentBar));

    56.         Commentary("HighestNear "+Text(GetGlobalVar(11))+" Bar "+Text(GetGlobalVar(10)));

    57.         Commentary("LowestNear  "+Text(GetGlobalVar(13))+" Bar "+Text(GetGlobalVar(12)));

    58.         Commentary("HighestFar  "+Text(GetGlobalVar(15))+" Bar "+Text(GetGlobalVar(14)));

    59.         Commentary("LowestFar   "+Text(GetGlobalVar(17))+" Bar "+Text(GetGlobalVar(16)));

    60.        

    61. End

     

  • TB技術(shù)人員: 請(qǐng)教為什么在實(shí)時(shí)(BarStatus==2)時(shí),最后一個(gè)Bar的計(jì)算值的不對(duì)的,請(qǐng)高手幫助。謝謝!

     

  • TB客服: 最后一個(gè)bar的high和low不斷在變化,所以有可能不對(duì)的

     

  • 網(wǎng)友回復(fù): 本帖最后由 efrog 于 2010-9-8 20:45 編輯

    謝謝,問(wèn)題就出在這里。增加了BarStatus==1的限制,讓最后一個(gè)Bar不參與計(jì)算,問(wèn)題就解決了。
    實(shí)際上最后Bar的High與Low要參與波峰、波谷的比較,在比較之前還不能直接修正目前的波峰、波谷。
    修正的程序如下:
    1. Params

    2.         Numeric MyMinLength(5);

    3.         // GV10 最近波峰與當(dāng)前Bar的Bar計(jì)數(shù)

    4.         // GV11 最近波峰的值

    5.         // GV12 最近波谷與當(dāng)前Bar的Bar計(jì)數(shù)

    6.         // GV13 最近波谷的值

    7.         // GV14 前一個(gè)波峰與當(dāng)前Bar的Bar計(jì)數(shù)

    8.         // GV15 前一個(gè)波峰的值

    9.         // GV16 前一個(gè)波谷與當(dāng)前Bar的Bar計(jì)數(shù)

    10.         // GV17 前一個(gè)波谷的值

    11. Vars

    12.         Numeric MyLength;

    13.         Numeric MyHighBar;

    14.         Numeric MyHigh;

    15.         Numeric MyLow;

    16.         Numeric MyLowBar;

    17. Begin

    18.         If (BarStatus==0)

    19.         {        SetGlobalVar(10,0); SetGlobalVar(11,High); //最近波峰Bar,High

    20.                 SetGlobalVar(12,0); SetGlobalVar(13,Low);  //最近波谷Bar,Low

    21.                 SetGlobalVar(14,0); SetGlobalVar(15,High);

    22.                 SetGlobalVar(16,0); SetGlobalVar(17,Low);

    23.         }

    24.        

    25.         If (BarStatus==1)

    26.         {        MyLength = GetGlobalVar(12)+1;//取上一波谷到當(dāng)前Bar的個(gè)數(shù)

    27.                 MyLength = IIF(MyLength<=MyMinLength,MyMinLength+1,MyLength);//至少保持最小的波峰距離為5個(gè)Bar

    28.                 MyHighBar = HighestBar(High,MyLength);

    29.                 MyHigh = Highest(High,MyLength);

    30.        

    31.                 If (GetGlobalVar(10)+1-MyHighBar>=MyMinLength or MyHigh>GetGlobalVar(11))

    32.                 {        If (GetGlobalVar(10)+1-MyHighBar>=MyMinLength)

    33.                         {        SetGlobalVar(14,GetGlobalVar(10)); //保留前一個(gè)波峰

    34.                                 SetGlobalVar(15,GetGlobalVar(11));

    35.                         }

    36.                         SetGlobalVar(10,MyHighBar+1);//從上個(gè)低谷開始的最高價(jià)所在的Bar序數(shù)

    37.                         SetGlobalVar(11,MyHigh);   //從上個(gè)低谷開始的最高價(jià)

    38.                 } Else SetGlobalVar(10,GetGlobalVar(10)+1);

    39.  

    40.                 MyLength = GetGlobalVar(10)+1;//取上一波峰到當(dāng)前Bar的個(gè)數(shù)

    41.                 MyLength = IIF(MyLength<MyMinLength,MyMinLength+1,MyLength);

    42.                 MyLowBar = LowestBar(Low,MyLength);

    43.                 MyLow = Lowest(Low,MyLength);

    44.                 If (GetGlobalVar(12)+1-MyLowBar>=MyMinLength or MyLow<GetGlobalVar(13))

    45.                 {        If (GetGlobalVar(12)+1-MyLowBar>=MyMinLength)

    46.                         {        SetGlobalVar(16,GetGlobalVar(12)); //保留前一個(gè)波谷

    47.                                 SetGlobalVar(17,GetGlobalVar(13));

    48.                         }

    49.                         SetGlobalVar(12,MyLowBar+1);//從上個(gè)波峰開始的最低價(jià)所在的Bar序數(shù)

    50.                         SetGlobalVar(13,MyLow);//從上個(gè)波峰開始的最低價(jià)

    51.                 } Else SetGlobalVar(12,GetGlobalVar(12)+1);

    52.         }

    53.         //驗(yàn)證顯示

    54.         Commentary("CurrBar "+Text(CurrentBar));

    55.         Commentary("HighestNear "+Text(GetGlobalVar(11))+" Bar "+Text(GetGlobalVar(10)));

    56.         Commentary("LowestNear  "+Text(GetGlobalVar(13))+" Bar "+Text(GetGlobalVar(12)));

    57.         Commentary("HighestFar  "+Text(GetGlobalVar(15))+" Bar "+Text(GetGlobalVar(14)));

    58.         Commentary("LowestFar   "+Text(GetGlobalVar(17))+" Bar "+Text(GetGlobalVar(16)));

    59. End
    復(fù)制代碼

     

  • 網(wǎng)友回復(fù):目前還有二個(gè)問(wèn)題:
     (1)HighestFar、LowestFar的Bar計(jì)算有問(wèn)題
  •  (2)由于使用了Highest和Lowest用戶函數(shù),當(dāng)最遠(yuǎn)的Bar前有更高或更低值時(shí),這兩個(gè)函數(shù)找到的并不是波峰和波谷。 

 

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

可聯(lián)系技術(shù)人員 QQ: 262069696  點(diǎn)擊在線交流進(jìn)行 有償 編寫!不貴!點(diǎn)擊查看價(jià)格!


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

相關(guān)文章

主站蜘蛛池模板: 亚洲一区二区三区欧美 | 在线亚洲精品国产波多野结衣 | 婷婷六月丁香色婷婷网 | 又黄又爽的视频 | 国产男女 爽爽爽爽视频 | 日本欧美中文字幕 | 91高素质城中村在线观看 | 韩国一区| 国产日韩精品一区二区 | 女性特黄一级毛片 | 北条麻妃中文字幕在线观看 | 久久橹| 狠狠操视频网站 | 亚洲精品一二三四 | 亚洲成年 | 免费看黄色大片 | 日韩精品在线第一页 | 亚洲免费资源 | 亚洲高清国产一区二区三区 | 色婷婷成人| 国产成人综合久久精品红 | 国产黄色a三级三级三级 | 亚洲色图欧美一区 | 花蝴蝶亚洲一区二区三区 | 在线成人tv天堂中文字幕 | 天堂网在线视频 | 亚洲成a人片在线观看www | 国产亚洲综合激情校园小说 | 色噜噜狠狠狠狠色综合久不 | 亚洲一级伦理 | 欧美一区二区三区激情视频 | 国产日韩精品一区二区 | 劲爆欧美精品13页 | 精品国产高清自在线一区二区三区 | 毛片福利 | 欧美一级高清视频在线播放 | 一区二区三区视频在线播放 | 在线观看免费视频a | 久久国产高清一区二区三区 | 黄色一级小视频 | 国产精品久久久久久免费 |