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

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

自動構(gòu)建主力合約--自動實現(xiàn)歷史測試之前的數(shù)據(jù)選取工作 [開拓者 TB]

  • 咨詢內(nèi)容:     筆者踏入期貨市場多年,學(xué)習(xí)了不少技術(shù)分析方法,也接觸了一些前沿理念,而期貨市場日益興起的程序化交易方法就是其中重要的一種。
    程序化交易,即是指將人的操作理念和風(fēng)險控制原則等編制為計算機的某種特定軟件可執(zhí)行的代碼,由計算機代為執(zhí)行。從而減少因為人性的弱點而執(zhí)行起來產(chǎn)生偏差的情況。同時,使用程序化交易系統(tǒng)也可以對人的操作起到有益的輔助作用,減輕人的負擔(dān)。
        愿望是美好的,程序化交易理念的產(chǎn)生應(yīng)該也是基于以上的美好目標。可是要編制出一套完整有效和穩(wěn)定的程序化交易系統(tǒng)出來,卻并非易事。先不說前期的量化和代碼轉(zhuǎn)化等問題,即使是這些問題都已經(jīng)解決了,那也只能說是我們的程序化交易系統(tǒng)才完成一小半。為什么呢?因為我們還有更重要的測試工作要做。一個沒有經(jīng)過測試并優(yōu)化改進的系統(tǒng),是萬萬不可貿(mào)貿(mào)然投入實戰(zhàn)的。
        由于我們是立足于對過去已經(jīng)發(fā)生的事件和行情所編制的系統(tǒng),所以第一步我們應(yīng)該測試在歷史行情上的表現(xiàn)如何,如果在歷史測試中都表現(xiàn)平平,那大概就是我們總結(jié)歸納出來的方法有問題,是沒有任何實際使用價值的。在此基礎(chǔ)上,如果測試效果不錯,我們再將系統(tǒng)應(yīng)用于實盤上跟蹤觀測一段時間。在確保沒有新的問題和不穩(wěn)定因素出現(xiàn)的情況下,我們才可以投入真金白銀進去。
        可見第一步的歷史測試相當重要,它的結(jié)果幾乎就決定了后續(xù)工作的開展與否。了解程序化交易的朋友們都知道,目前國內(nèi)普遍使用的可支持程序化交易的交易軟件也就那么2-3家,他們分別是文華財經(jīng)、金狐交易師和交易開拓者。其中最為普遍的還是文華財經(jīng)的WebStock,目前最新版本是2008版。可是筆者卻不怎么喜歡該軟件:函數(shù)少,自定義擴展功能也不怎么樣,數(shù)據(jù)還經(jīng)常變來變?nèi)ゲ徽鎸崱6鸷灰讕熓怯啥ΧΥ竺娘w狐交易師演變而來,由于其本身固有的特點以及營銷模式的問題,目前國內(nèi)似乎只有中國國際期貨公司才為客戶提供該軟件,一般客戶難以享受到該軟件的強大功能。那么,就剩下最后一款軟件了:交易開拓者,又稱TB。事實上,筆者該次的試驗就是建立在該軟件之上的,沒有該軟件,就不會有本文的產(chǎn)生。
        為什么要選擇交易開拓者做為我們本次分析研究的平臺,這要歸因于歷史數(shù)據(jù)的選取上。很多步入程序化交易領(lǐng)域的交易員——有些甚至已經(jīng)堪稱“元老”級人物,卻還是不知道該如何來進行歷史測試。常見的就是看到有人說自己研發(fā)出一套系統(tǒng),宣稱盈利和各方面表現(xiàn)都非常可觀,再一看他的測試周期——直接跨度幾年。我們都知道,期貨市場不同于股票,是存在換月和主力合約與非主力合約一說的。我很懷疑他們的方法難道在一天成交量不足1手的情況下也能發(fā)揮出系統(tǒng)本人宣稱的“奇效”。所以我比較贊同的,是程序化交易中一直存在的另一種理性的聲音:分段截取主力合約數(shù)據(jù)來檢驗系統(tǒng)的有效性。
        數(shù)據(jù)收集工作,看似簡單。如果歷史測試回溯時間不長,那我們大可以人工選擇并截取,但是如果測試時間跨度長達幾年呢?如果能夠用電腦程序來自動篩選提取那是最好不過了。而要實現(xiàn)編程自動實現(xiàn)這一目的,目前來看,只有運用TB強大的合約疊加功能才能實現(xiàn)。
            附完成圖:
    1.JPG (126.11 KB, 下載次數(shù): 9) 2009-3-9 14:10:30 上傳

     

  • TB技術(shù)人員:
    1. //------------------------------------------------------------------------
    2. // 簡稱: ZLHY
    3. // 名稱: 主力合約
    4. // 類別: 技術(shù)指標
    5. // 類型: 其它類
    6. // 輸出:
    7. //------------------------------------------------------------------------
    8. Vars
    9.     Numeric Major(0);
    10.     Numeric Con0;
    11.     Numeric Con1;
    12.     Numeric Con2;
    13.     Numeric Con3;
    14.     Numeric Con4;
    15.     Numeric Con5;
    16.     Numeric Con6;
    17.     Numeric Con7;
    18.     Numeric Con8;
    19.     Numeric Con9;
    20.     Numeric Con10;
    21.     Numeric Con11;
    22.     Numeric MyOpen;
    23.     Numeric MyHigh;
    24.     Numeric MyLow;
    25.     Numeric MyClose;
    26. Begin
    27.     CON0=AverageFC(DATA0.OPENINT(),5);
    28.     CON1=AVERAGEFC(DATA1.OPENINT(),5);
    29.     CON2=AVERAGEFC(DATA2.OPENINT(),5);
    30.     CON3=AVERAGEFC(DATA3.OPENINT(),5);
    31.     CON4=AVERAGEFC(DATA4.OPENINT(),5);
    32.     CON5=AVERAGEFC(DATA5.OPENINT(),5);
    33.     CON6=AVERAGEFC(DATA6.OPENINT(),5);
    34.     CON7=AVERAGEFC(DATA7.OPENINT(),5);
    35.     CON8=AVERAGEFC(DATA8.OPENINT(),5);
    36.     CON9=AVERAGEFC(DATA9.OPENINT(),5);
    37.     CON10=AVERAGEFC(DATA10.OPENINT(),5);
    38.     CON11=AVERAGEFC(DATA11.OPENINT(),5);

    39.     If(Con0 > Major)
    40.     {
    41.         Major = Con0;
    42.         MyOpen = Data0.Open;
    43.         MyHigh = Data0.High;
    44.         MyLow = Data0.Low;
    45.         MyClose = Data0.Close;
    46.     }

    47.     If(Con1 > Major)
    48.     {
    49.         Major = Con1;
    50.         MyOpen = Data1.Open;
    51.         MyHigh = Data1.High;
    52.         MyLow = Data1.Low;
    53.         MyClose = Data1.Close;
    54.     }

    55.     If(Con2 > Major)
    56.     {
    57.         Major = Con2;
    58.         MyOpen = Data2.Open;
    59.         MyHigh = Data2.High;
    60.         MyLow = Data2.Low;
    61.         MyClose = Data2.Close;
    62.     }

    63.     If(Con3 > Major)
    64.     {
    65.         Major = Con3;
    66.         MyOpen = Data3.Open;
    67.         MyHigh = Data3.High;
    68.         MyLow = Data3.Low;
    69.         MyClose = Data3.Close;
    70.     }

    71.     If(Con4 > Major)
    72.     {
    73.         Major = Con4;
    74.         MyOpen = Data4.Open;
    75.         MyHigh = Data4.High;
    76.         MyLow = Data4.Low;
    77.         MyClose = Data4.Close;
    78.     }

    79.     If(Con5 > Major)
    80.     {
    81.         Major = Con5;
    82.         MyOpen = Data5.Open;
    83.         MyHigh = Data5.High;
    84.         MyLow = Data5.Low;
    85.         MyClose = Data5.Close;
    86.     }

    87.     If(Con6 > Major)
    88.     {
    89.         Major = Con6;
    90.         MyOpen = Data6.Open;
    91.         MyHigh = Data6.High;
    92.         MyLow = Data6.Low;
    93.         MyClose = Data6.Close;
    94.     }

    95.     If(Con7 > Major)
    96.     {
    97.         Major = Con7;
    98.         MyOpen = Data7.Open;
    99.         MyHigh = Data7.High;
    100.         MyLow = Data7.Low;
    101.         MyClose = Data7.Close;
    102.     }

    103.     If(Con8 > Major)
    104.     {
    105.         Major = Con8;
    106.         MyOpen = Data8.Open;
    107.         MyHigh = Data8.High;
    108.         MyLow = Data8.Low;
    109.         MyClose = Data8.Close;
    110.     }

    111.     If(Con9 > Major)
    112.     {
    113.         Major = Con9;
    114.         MyOpen = Data9.Open;
    115.         MyHigh = Data9.High;
    116.         MyLow = Data9.Low;
    117.         MyClose = Data9.Close;
    118.     }

    119.     If(Con10 > Major)
    120.     {
    121.         Major = Con10;
    122.         MyOpen = Data10.Open;
    123.         MyHigh = Data10.High;
    124.         MyLow = Data10.Low;
    125.         MyClose = Data10.Close;
    126.     }

    127.     If(Con11 > Major)
    128.     {
    129.         Major = Con11;
    130.         MyOpen = Data11.Open;
    131.         MyHigh = Data11.High;
    132.         MyLow = Data11.Low;
    133.         MyClose = Data11.Close;
    134.     }

    135.     PlotNumeric("High",MyHigh);
    136.     PlotNumeric("Open",MyOpen);
    137.     PlotNumeric("Low",MyLow);
    138.     PlotNumeric("Close",MyClose);
    139. End
    140. //------------------------------------------------------------------------
    141. // 編譯版本        GS2004.06.12
    142. // 用戶版本        2008/08/21 16:15
    143. // 版權(quán)所有        hedgehog
    144. // 更改聲明        TradeBlazer Software保留對TradeBlazer平臺
    145. //                        每一版本的TrabeBlazer公式修改和重寫的權(quán)利
    146. //------------------------------------------------------------------------
    復(fù)制代碼

     

  • TB客服: 已經(jīng)附上指標代碼

    有需要的可自行稍作修改,加入文字提示,這樣就可以大大方便系統(tǒng)歷史測試之前的數(shù)據(jù)選取工作了。


    明眼人一眼就可以看出來,我的構(gòu)建依據(jù)是持倉量的5日平均,以最大的那個合約作為主力合約


    實際中發(fā)現(xiàn) 把OPENINT()換成VOL()可能更好,因為在主力合約的變換上面,成交量的變化更先于持倉量。


    本文僅做拋磚引玉只用,歡迎斧正

    [ 本帖最后由 hedgehog 于 2009-3-9 14:26 編輯 ]

     

  • 網(wǎng)友回復(fù): 很不錯.謝謝hedgehog 分享.

     

  • 網(wǎng)友回復(fù): 不錯,加精

 

如果以上指標公式不適用于您常用的行情軟件

或者您想改編成選股公式,以便快速選出某種形態(tài)個股的話,

可以聯(lián)系我們相關(guān)技術(shù)人員 QQ: 262069696  點擊在線交流進行 有償 改編!

 


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

相關(guān)文章

    指定的模型還沒有相關(guān)內(nèi)容!
主站蜘蛛池模板: 免费看一级a一片毛片 | 妞干网在线播放 | 日韩有码第一页 | 亚洲高清视频免费 | 农村寡妇野外情一级毛片 | 亚洲午夜免费视频 | 在线观看亚洲专区 | 日本mv精品中文字幕 | 国产在线精品人成导航 | 男女一级毛片免费播放 | 福利片影院 | 日韩欧美亚洲精品 | 精品一区二区视频 | 亚洲成av人片天堂网 | 欧美午夜久久 | 中文字幕第9页 | 日本黄色免费网址 | 污视频网站免费观看 | 成人精品福利 | 黄色小视频免费 | 欧美黑人性猛交╳xx╳动态图 | 2048国产精品原创综合在线 | 成人欧美精品大91在线 | 久久成人18免费 | 398av| 日韩精品第二页 | 日韩永久免费进入2015 | 色吊丝最新网站 | 成人精品一区二区www | 一本久道久久综合多人 | 激情男女无遮无挡动态图 | 一道本在线播放 | 伊人短视频 | 欧美成人精品一级高清片 | 国产香蕉98碰碰久久人人 | 男人女人真曰批视频大全免费观看 | 日韩精品福利视频一区二区三区 | 一个人看的www在线视频播放 | 欧美色图导航 | 亚洲国产成人九九综合 | 欧美黄免在线播放 |