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

請老師幫忙把文華跨周期引用模型改為TB公式 [開拓者 TB]

  • 咨詢內容: nopain老師,我之前一直使用文華的年費服務,考慮到TB在歷史回測方面的優勢,決定轉向TB。我想把文華的跨周期引用模型轉換成TB模型(1分鐘周期K線圖中引用30分鐘周期的DMI指標),但由于剛剛學習TB語言,對TB不了解,請老師幫忙修改,謝謝。
    1、文華模型
    (1)引用模型
    TR:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),14);
    HD:=HIGH-REF(HIGH,1);
    LD:=REF(LOW,1)-LOW;
    DMP:=SUM(IFELSE(HD>0&&HD>LD,HD,0),14);
    DMM:=SUM(IFELSE(LD>0&&LD>HD,LD,0),14);
    PDI1:=DMP*100/TR;
    MDI1:=DMM*100/TR;
    ADX1:=MA(ABS(MDI1-PDI1)/(MDI1+PDI1)*100,6);
    (2)主模型
    #IMPORT[,MIN30,MYDHL33] AS VAR
    PDI:=VAR.PDI1;
    MDI:=VAR.MDI1;
    ADX:=VAR.ADX1;
    ADX>25&&ADX>REF(ADX,1)&&NOT(R3)&&DI>MDI&&DI>REF(PDI,1)&&MDI<REF(MDI,1),BK;//CCI上穿100,做多
    .....
    AUTOFILTER;

    2、通過學習TB帖子,
    http://bbs.tb18.net/forum.php?mo ... ge%3D1&tid=1996,
    我編寫了一個TB函數和一個TB公式,具體如下:
    (1)TransMinsDatab 函數
    //------------------------------------------------------------------------
    // 簡稱: TransMinsDatab
    // 名稱: TransMinsDatab
    // 類別: 用戶函數
    // 類型: 用戶函數
    // 輸出: 數值型
    //------------------------------------------------------------------------
    Params
            NumericSeries Price(1);
            Numeric nMinSet(5);
            Numeric MinsAgo(2);
    Vars
            NumericSeries barCnt;
            NumericSeries MinData;
            Numeric i;
            Numeric j;
            Numeric nIndex(0);
    Begin
            If(IntPart(Minute%nMinSet)==0)
            {
                    barCnt = 1;
            }Else
            {
                    barCnt = barCnt[1] + 1;
            }
            MinData = Price;
                   
            If(MinsAgo == 0)
            {
                    return MinData;
            }Else
            {
                    For i = 1 To MinsAgo
                    {
                            If( i == 1)
                            {        
                                    j = 0;
                            }Else
                            {
                                    j = j + BarCnt[j];                                
                            }
                            If (j > CurrentBar ) Return InvalidNumeric;
                            nIndex = nIndex + BarCnt[j];
                    }
                    Return MinData[nIndex];
            }
    End

    (2)根據文華代碼直接編譯過來的TB公式(名稱為ADX66)
    //------------------------------------------------------------------------
    // 簡稱: ADX66
    // 名稱: ADX66
    // 類別: 公式應用
    // 類型: 用戶應用
    //------------------------------------------------------------------------
    Params
    Numeric Length(14);
    Numeric ADXLength(6);
    Numeric Lots(1);
    Vars
    Numeric MyOpen;
    NumericSeries MyHigh;
    NumericSeries MyLow;
    NumericSeries MyClose;
    Numeric MyOpen1;
    NumericSeries MyHigh1;
    NumericSeries MyLow1;
    NumericSeries MyClose1;
    Numeric TR;
    Numeric HD;
    Numeric LD;
    Numeric DMP;
    Numeric DMM;
    NumericSeries PDI;
    NumericSeries MDI;
    Numeric i;
    NumericSeries CY;
    Numeric Value1;
    Numeric SumValue(0);
    NumericSeries ADX;
    Begin
    MyOpen1=DataConvert(Open,"min",30,"Open");
    MyHigh1=DataConvert(High,"min",30,"High");
    MyLow1=DataConvert(Low,"min",30,"Low");
    MyClose1=DataConvert(Close,"min",30,"Close");
    //ADX
    TR=Summation(MAX(MAX((MyHigh1-MyLow1),ABS(MyHigh1-MyClose1[1])),ABS(MyLow1-MyClose1[1])),Length);
    HD=MyHigh1-MyHigh1[1];
    LD=MyLow1[1]-MyLow1;
    DMP=Summation(IIF(HD>0&&HD>LD,HD,0),Length);
    DMM=Summation(IIF(LD>0&&LD>HD,LD,0),Length);
    PDI=DMP*100/TR;
    MDI=DMM*100/TR;
    CY=(ABS(MDI-PDI)/(MDI+PDI))*100;
    For i=ADXLength-1 DownTo 0
    {
    Value1=TransMinsDatab(CY,30,i);
    SumValue=SumValue+Value1;
    }
    ADX=SumValue/ADXLength;
    PlotNumeric("DI",PDI);
    PlotNumeric("MDI",MDI);
    PlotNumeric("ADX",ADX);
    If(ADX>25&&ADX>ADX[1]&&PDI>MDI&&PDI>PDI[1]&&MDI<MDI[1])
    {
    Buy(Lots,OPEN);
    }  
    End


    在超級圖標插入ADX公式,好多地方顯示ADX=-1.#J,無法顯示正常的ADX值;PDI和MDI也顯示異常(顯示為零)。
    請TB老師幫忙修改,謝謝。其中,值得注意是 ADX、PDI和MDI需要定義成有序列的回溯參數,才能用于回溯。
    此外,我也注意到TB論壇里有關于DMI的參考模型
    http://bbs.tb18.net/forum.php?mo ... 7&highlight=DMI ,
    由于DirMovement函數的設置返回值為布爾型,我不知道怎么用于跨周期引用的公式。如果老師無法修改我直接從文華編譯的TB公式,那就請幫忙以TB帖子的DMI參考模型為基礎,直接改為我想要的跨周期引用公式。再次表示感謝。

     

  • TB技術人員: 不好意思,剛才文華模型中主模型中“ADX>25&&ADX>REF(ADX,1)&&NOT(R3)&& PDI>MDI&& PDI>REF(PDI,1)&& MDI<REF(MDI,1)BK;//CCI上穿100,做多” 在網頁中顯示有問題。

     

  • TB客服: 不好意思,剛才文華模型中主模型中“ADX>25&&ADX>REF(ADX,1)&&NOT(R3)&& PDI>MDI&& PDI>REF(PDI,1)&& MDI<REF(MDI,1),BK;” 在網頁中顯示有問題,
    應該為“ADX>25&&ADX>REF(ADX,1)&&NOT(R3)&& PDI>MDI&& PDI>REF(PDI,1)&& MDI<REF(MDI,1),BK;”。同時,ADX66公式中的”PlotNumeric("PDI",PDI);“在網頁中顯示出問題,應該為”PlotNumeric("PDI",PDI);“。

     

  • 網友回復: 頂起,請TB老師幫忙解答,謝謝!

     

  • 網友回復: 再次請TB老師抽空指導修改,非常感謝。

 

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

可聯系技術人員 QQ: 1145508240  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 久久青草免费91线频观看站街| 国产97人人超碰caoprom| xxxx性bbbb欧美野外| 晓雪老师下面好紧好湿| 偷偷狠狠的日日高清完整视频| 香港台湾日本三级纶理在线视| 国产高清一区二区三区视频| 中文字幕15页| 最近中文字幕mv免费高清电影| 亚洲色欲或者高潮影院| 色偷偷88888欧美精品久久久 | 亚洲美国产亚洲av| 色哟哟视频在线| 国产无套粉嫩白浆在线| 97人人添人澡人人爽超碰| 成人做受视频试看60秒| 久久无码精品一区二区三区| 欧美成人免费一区二区| 免费a级毛片在线播放| 中文无码字幕中文有码字幕| 欧美成人免费在线观看| 免费观看男男污污ww网站| 青春禁区视频在线观看8下载| 巨胸喷奶水视频www网免费| 久久精品人人做人人爽电影蜜月| 欧美色欧美亚洲另类二区| 动漫人物美女被吸乳羞羞动漫 | 性之道在线观看| 久久亚洲AV午夜福利精品一区| 欧美亚洲天堂网| 亚洲福利电影在线观看| 破了亲妺妺的处免费视频国产| 国产va免费精品高清在线| 黄色一级视频网| 国产精品入口麻豆电影网| 99精品一区二区三区| 巨r精灵催眠动漫无删减| 久久久久一级片| 日韩精品www| 亚洲а∨天堂久久精品| 欧美猛少妇色xxxxx|