大伊人青草狠狠久久-大伊香蕉精品视频在线-大伊香蕉精品一区视频在线-大伊香蕉在线精品不卡视频-大伊香蕉在线精品视频75-大伊香蕉在线精品视频人碰人

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

TB數(shù)據(jù)回溯“潛”規(guī)則 [開拓者 TB]

  • 咨詢內(nèi)容: 數(shù)據(jù)回溯
    在TradeBlazer公式中有三種類型的數(shù)據(jù)回溯:變量回溯、參數(shù)回溯和函數(shù)回溯。

    MaxBarsBack
    在討論回溯之前,我們需要了解公式中一個(gè)和數(shù)據(jù)回溯相關(guān)的系統(tǒng)函數(shù)MaxBarsBack,該函數(shù)返回公式應(yīng)用執(zhí)行所需的最大回溯Bar數(shù)目,該函數(shù)初始值為0,在公式應(yīng)用從左到右每個(gè)Bar執(zhí)行的過程中,會(huì)隨著代碼中對系統(tǒng)函數(shù),序列變量等值的回溯調(diào)用而增加,所有Bar索引小于MaxBarsBack的輸出都是不準(zhǔn)確的,會(huì)被忽略掉。

    變量回溯
    TradeBlazer公式共支持九種數(shù)據(jù)類型,但對于變量定義,引用類型是無效的,剩余六種數(shù)據(jù)類型中分為簡單和序列兩大類,簡單類型變量是單個(gè)的值,不能對其進(jìn)行回溯,序列類型變量是和Bar長度一致的數(shù)據(jù)排列,我們可以通過回溯來獲取當(dāng)前Bar以前的任意值。

    要使用變量回溯,需要在變量的后面,使用中括號(hào)"[nOffset]",nOffset是要回溯引用的Bar相對于當(dāng)前Bar的偏移值,該值必須大于等于0,當(dāng)nOffset = 0時(shí),即為獲取當(dāng)前Bar的變量值。

    例如,我們定義如下公式應(yīng)用:

    Vars
        NumericSeries MyVal;
    Begin
        MyVal = Average(Close,10);
        PlotNumeric("MyVal",MyVal[3]);
    End

    以上公式定義數(shù)值型序列變量MyVal,MyVal等于收盤價(jià)的10個(gè)周期的平均值,然后將序列變量MyVal的前3個(gè)Bar數(shù)據(jù)輸出。

    以上公式MyVal的前9個(gè)數(shù)據(jù)因?yàn)樾枰?jì)算的Bar數(shù)據(jù)不足,返回的值無效,從第10個(gè)Bar開始,MyVal獲取到正確的平均值,但是我們需要輸出的數(shù)據(jù)是MyVal[3],即前3個(gè)Bar的數(shù)據(jù),因此,直到第13個(gè)Bar,有效的數(shù)據(jù)才會(huì)被輸出。以上公式的13是該公式需要的最少引用周期數(shù),如果將輸出信息畫到超級(jí)圖表中,前12個(gè)Bar是沒有圖形顯示的。

    當(dāng)nOffset>CurrentBar時(shí),對于變量的回溯發(fā)生越界,這種情況下,將返回該變量的第一個(gè)Bar的值。

    參數(shù)回溯
    TradeBlazer公式支持的九種基本類型,在用戶函數(shù)的參數(shù)定義中全部支持,在其他的公式中參數(shù)定義只支持三種簡單類型。因此,關(guān)于參數(shù)的回溯問題,只對用戶函數(shù)有效,以下我們舉例說明用戶函數(shù)序列參數(shù)的使用。

    要使用參數(shù)回溯,需要在參數(shù)的后面,使用中括號(hào)"[nOffset]",nOffset是要回溯引用的Bar相對于當(dāng)前Bar的偏移值,該值必須大于等于0,當(dāng)nOffset = 0時(shí),即為獲取當(dāng)前Bar的參數(shù)值。

    例如,我們定義一個(gè)用戶函數(shù)MyFunc,腳本如下:

    Params
        NumericSeries   Price(0);
        Numeric         Length(10);
    Vars
        Numeric         MyAvg;
        Numeric         MyDeviation;
    Begin
        MyAvg = Summation(Price,Length)/Length;
        MyDeviation = MyAvg - Price[Length];
        Return MyDeviation;
    End

    以上的例子,對輸入的Price我們求其10個(gè)周期的平均值,然后求出該平均值和Price的前Length個(gè)Bar的值之間的差值,將其返回。對于Price[Length]這樣的參數(shù)回溯引用,其實(shí)現(xiàn)原理和上節(jié)所描述的變量回溯引用基本一致。

    函數(shù)回溯
    函數(shù)回溯分為系統(tǒng)函數(shù)的回溯和用戶函數(shù)的回溯。

    系統(tǒng)函數(shù)中回溯的使用主要是針對Bar數(shù)據(jù)。比如我們需要獲取上2個(gè)Bar的收盤價(jià),腳本為Close[2];又或者我們需要獲取10個(gè)Bar前的成交量,腳本為Vol[10]。對于Bar數(shù)據(jù)的回溯是系統(tǒng)函數(shù)中最常用的,雖然也可以對行情數(shù)據(jù)和交易數(shù)據(jù)等進(jìn)行回溯,但是大部分并無實(shí)質(zhì)的意義,返回的結(jié)果和不回溯是一樣的,因此,不推薦如此使用。

    要對系統(tǒng)函數(shù)回溯引用,我們可以通過在函數(shù)名稱后面添加"[nOffset]"獲取其回溯值,nOffset是要回溯引用的Bar相對于當(dāng)前Bar的偏移值,該值必須大于等于0,當(dāng)nOffset = 0時(shí),即為獲取當(dāng)前Bar的參數(shù)值。

    帶有參數(shù)的函數(shù)回溯,需要將"[nOffset]"放到參數(shù)之后,另外,無參數(shù)和使用默認(rèn)參數(shù)的情況下,函數(shù)調(diào)用的括號(hào)可以省略。例如:Close[2]等同于Close()[2]。

    用戶函數(shù)的回溯和系統(tǒng)函數(shù)原理基本一致,但考慮到系統(tǒng)的執(zhí)行速度和效率等因素,目前,TradeBlazer公式不支持對用戶函數(shù)的回溯,如果您想要獲取用戶函數(shù)的回溯值,建議您將函數(shù)返回值賦值給一個(gè)序列變量,通過對序列變量的回溯來達(dá)到相同的目的。

    如下面的腳本所示,取Close的10個(gè)Bar平均值的4個(gè)周期前的回溯值:

    Vars
        NumericSeries AvgValue;
        Numeric       TmpValue;
    Begin   
        AvgValue = Average(Close,10);
        TmpValue = AvgValue[4];
        ...
    End

     

  • TB技術(shù)人員: 本帖最后由 bbenben 于 2013-10-3 06:31 編輯

    按照現(xiàn)行TB規(guī)則:
    Vars
        NumericSeries MyVal;
    Begin
        MyVal = Average(Close[5],10);
        PlotNumeric("MyVal",MyVal[3]);
    End

    以上公式定義數(shù)值型序列變量MyVal,MyVal等于5周期前收盤價(jià)的10個(gè)周期的平均值,然后將序列變量MyVal的前3個(gè)Bar數(shù)據(jù)輸出。

    以上公式MyVal的前14個(gè)數(shù)據(jù)因?yàn)樾枰?jì)算的Bar數(shù)據(jù)不足,返回的值無效,從第15個(gè)Bar開始,MyVal獲取到正確的平均值,但是我們需要輸出的數(shù)據(jù)是MyVal[3],即前3個(gè)Bar的數(shù)據(jù),因此,直到第18個(gè)Bar,有效的數(shù)據(jù)才會(huì)被輸出。以上公式的18是該公式需要的最少引用周期數(shù),如果將輸出信息畫到超級(jí)圖表中,前17個(gè)Bar是沒有圖形顯示的。
    當(dāng)nOffset>CurrentBar時(shí),對于變量的回溯發(fā)生越界,這種情況下,將返回該變量的第一個(gè)Bar的值。
    =================================================================================
    但我們用超級(jí)圖表測試,從第10個(gè)Bar開始,MyVal獲取到有效的平均值,并可以輸出。
    按照現(xiàn)行規(guī)則MaxBarsBack=5+10+3,但系統(tǒng)中實(shí)際執(zhí)行的卻是MaxBarsBack=9,從第10個(gè)bar開始輸出。
    漏洞啊


     

  • TB客服: 本帖最后由 bbenben 于 2013-10-3 06:39 編輯

    經(jīng)過測試MaxBarsBack=max(5,10-1,3)=9
                  MaxBarsBack=max(20,10-1,20)=20
    而正確值應(yīng)當(dāng)是  MaxBarsBack=Sum(5,10,-1,3)=17
                              MaxBarsBack=Sum(20,10,-1,20)=49

     

  • 網(wǎng)友回復(fù): 樓主講述的非常詳細(xì)。不過類似于close[3]這種,是需要向后移3個(gè)才能得到正確的值,之前也可以取到值的,以第1跟K線為例,close[3]會(huì)取到當(dāng)天的收盤價(jià),直到第四根K線才能回溯出正確的值

     

  • 網(wǎng)友回復(fù): 樓主,講的太好了!

 

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

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


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

相關(guān)文章

    沒有相關(guān)內(nèi)容
主站蜘蛛池模板: 老子影院伦不卡欧美 | 久久网色 | 人成午夜欧美大片免费视频 | 九九这里只有精品 | 日韩欧美视频一区二区三区 | 99热久久久久久久免费观看 | 玖玖国产| 午夜性色福利视频在线视频 | 最新欧美精品一区二区三区不卡 | 在线免费观看视频a | 久久国产精品女 | 伊人久久在线观看 | 一级毛片 在线播放 | 免费人成黄页网站在线观看 | 日韩毛片基地一区二区三区 | 欧美专区在线播放 | 亚州视频一区 | 激情综合网婷婷 | 久久久久久国产视频 | 久久麻豆精品 | 成人爽a毛片在线视频 | 91精品久久久| 精品伊人久久久 | 精品国产区一区二区三区在线观看 | 91亚洲国产成人久久精品网址 | 久久久国产一区二区三区 | 一区二区三区亚洲视频 | 国产乱子伦手机在线 | 一级a毛片免费观看久久精品 | 国产亚洲精品在天天在线麻豆 | 999国产高清在线精品 | 99精品免费在线观看 | 国产成人理在线观看视频 | 亚洲国产高清在线精品一区 | 97se亚洲国产综合自在线 | 精品一区二区三区亚洲 | 国产免费一级高清淫日本片 | 四虎在线视频观看大全影视 | 成人精品亚洲人成在线 | 在线播放不卡 | 欧美成人精品一区二区 |