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

請問TB的DMI算法與其他軟件DMI算法區別在哪里? [開拓者 TB]

  • 咨詢內容: http://bbs.tb18.net/forum.php?mo ... 7&highlight=dmi
    這個頁面下版主寫了個DMI代碼。應該是移植于TS的?
    1. Params
    2.             Numeric Length(14);
    3.             NumericRef oDMIPlus;
    4.             NumericRef oDMIMinus;
    5.             NumericRef oDMI;
    6.             NumericRef oADX;
    7.             NumericRef oADXR;
    8.             NumericRef oVolty;
    9.     Vars
    10.             NumericSeries sDMI;
    11.             NumericSeries sADX;
    12.             Numeric sADX0;                       
    13.             NumericSeries sVolty;
    14.             Numeric PlusDM;
    15.             Numeric MinusDM;
    16.             Numeric UpperMove;
    17.             Numeric LowerMove;
    18.             Numeric SumPlusDM(0);
    19.             Numeric SumMinusDM(0);
    20.             Numeric SumTR(0);
    21.             NumericSeries AvgPlusDM;
    22.             NumericSeries AvgMinusDM;
    23.             Numeric SF;                        // smoothing factor
    24.             Numeric Divisor;
    25.             Numeric i;
    26.             NumericSeries TRValue;
    27.     Begin
    28.             SF = 1/length;
    29.             TRValue = TrueRange;
    30.             If(CurrentBar == Length)
    31.             {
    32.                     for i = 0 To Length - 1
    33.                     {
    34.                             PlusDM = 0 ;
    35.                             MinusDM = 0 ;
    36.                             UpperMove = High[i] - High[ i + 1 ] ;
    37.                             LowerMove = Low[ i + 1 ] - Low[i] ;
    38.                             if (UpperMove > LowerMove and UpperMove > 0 )
    39.                             {
    40.                                     PlusDM = UpperMove;
    41.                             }else if (LowerMove > UpperMove and LowerMove > 0)
    42.                             {
    43.                                     MinusDM = LowerMove ;
    44.                             }
    45.                             SumPlusDM = SumPlusDM + PlusDM ;
    46.                             SumMinusDM = SumMinusDM + MinusDM ;
    47.                             SumTR = SumTR + TRValue[i] ;
    48.                     }
    49.                     AvgPlusDM = SumPlusDM / Length ;
    50.                     AvgMinusDM = SumMinusDM / Length ;
    51.                     sVolty = SumTR / Length ;
    52.             }Else if(CurrentBar > Length)
    53.             {
    54.                     PlusDM = 0 ;
    55.                     MinusDM = 0 ;
    56.                     UpperMove = High - High[1] ;
    57.                     LowerMove = Low[1] - Low ;
    58.                     if (UpperMove > LowerMove and UpperMove > 0 )
    59.                     {
    60.                             PlusDM = UpperMove;
    61.                     }else if (LowerMove > UpperMove and LowerMove > 0 )
    62.                     {
    63.                             MinusDM = LowerMove ;
    64.                     }
    65.                     AvgPlusDM = AvgPlusDM[1] + SF * ( PlusDM - AvgPlusDM[1] ) ;
    66.                     AvgMinusDM = AvgMinusDM[1] + SF * ( MinusDM - AvgMinusDM[1] ) ;
    67.                     sVolty = sVolty[1] + SF * ( TRValue  - sVolty[1] ) ;
    68.             }Else
    69.             {
    70.                     oDMIPlus = InvalidNumeric;
    71.                     oDMIMinus = InvalidNumeric;
    72.                     oDMI = InvalidNumeric;
    73.                     oADX = InvalidNumeric;
    74.                     oADXR = InvalidNumeric;
    75.                     oVolty = InvalidNumeric;
    76.                     Return True;
    77.             }
    78.            
    79.             if (sVolty > 0)
    80.             {
    81.                     oDMIPlus = 100 * AvgPlusDM / sVolty ;
    82.                     oDMIMinus = 100 * AvgMinusDM / sVolty ;
    83.             }else
    84.             {
    85.                     oDMIPlus = 0 ;
    86.                     oDMIMinus = 0 ;
    87.             }

    88.             Divisor = oDMIPlus + oDMIMinus ;
    89.             if (Divisor > 0)
    90.             {
    91.                     sDMI = 100 * Abs( oDMIPlus - oDMIMinus ) / Divisor;
    92.             }else
    93.             {
    94.                     sDMI = 0 ;
    95.             }
    96.                             sADX0 = Cum( sDMI ) / CurrentBar ;
    97.             if(CurrentBar > 0)
    98.             {
    99.                     if (CurrentBar <= Length)
    100.                     {
    101.                             sADX = sADX0 ;
    102.                             oADXR = ( sADX + sADX[ CurrentBar - 1 ] ) * 0.5 ;
    103.                     }else  
    104.                     {
    105.                             sADX = sADX[1] + SF * ( sDMI - sADX[1] ) ;
    106.                             oADXR = ( sADX + sADX[ Length - 1 ] ) * 0.5 ;
    107.                     }
    108.             }
    109.             oVolty = sVolty;
    110.             oDMI = sDMI;
    111.             oADX = sADX;
    112.             Return True;

     

  • TB技術人員: 頂起,請管理員回答!

     

  • TB客服: 我們提供的代碼移植于TS,至于文華移植的代碼就不知道算法是什么樣的了

     

  • 網友回復:
    nopain 發表于 2013-7-25 14:36
    我們提供的代碼移植于TS,至于文華移植的代碼就不知道算法是什么樣的了

    Params
            Numeric N(22);
            Numeric M(6);
                    Numeric k_ADXRUp(70);
                    Numeric k_ADXRDown(30);
                   
    Vars
            numericseries TR;
            numericseries HD;
            numericseries LD;
            numericseries DMP;
            numericseries DMM;
            numericseries PDI;
            numericseries MDI;        
            NumericSeries ADX;                                
            NumericSeries ADXR;        
    Begin
            //計算ADX公式
            TR = AvgTrueRange(N);
            HD = HIGH-HIGH[1];
            LD = LOW[1]-LOW;
            DMP = XAverage(IIF(HD>0&&HD>LD,HD,0),N);
            DMM = XAverage(IIF(LD>0&&LD>HD,LD,0),N);
            PDI = DMP*100/TR;
            MDI = DMM*100/TR;
            ADX = ABS(MDI-PDI)/(MDI+PDI)*100;
            ADXR = Average(ADX,M);
            
            PlotNumeric("PDI",PDI);
            PlotNumeric("MDI",MDI);
            PlotNumeric("ADX", adx);
                    PlotNumeric("ADXR",ADXR);
    End
    文華的代碼就是這么短一段

 

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

可聯系技術人員 QQ: 1145508240  有需要幫忙請點擊這里留言!!!進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 男女一边摸一边爽爽视频| 国内一级毛片成人七仙女| 国产午夜亚洲精品不卡免下载| 中文字幕影片免费在线观看| 全彩成人18h漫画在线| jazzjazz国产精品一区二区| 最近中文字幕无免费视频 | 久久精品aⅴ无码中文字字幕重口| 精品久久久久久中文字幕| 国产精品免费_区二区三区观看| 亚洲高清美女一区二区三区| 久久精品视频99| 精品国产一区二区三区免费| 国产精品亚洲欧美云霸高清| 一边摸一边叫床一边爽| 欧美一级黄色片在线观看| 午夜毛片不卡免费观看视频| 亚洲第一成人在线| 少妇人妻在线视频| 五月婷婷六月天| 男女下面一进一出视频在线观看| 四虎成人精品国产永久免费无码| 夜夜爽免费视频| 尤物网在线视频| 久久精品无码专区免费青青| 欧美另类老少配hd| 免费成人在线电影| 青青操在线免费观看| 国内免费高清视频在线观看| jizz黄色片| 无码视频免费一区二三区| 亚洲国产成人va在线观看| 亚洲国产美女福利直播秀一区二区 | 四虎成人国产精品视频| 青青国产成人久久91网| 国产在线观看精品香蕉v区| 99爱在线视频这里只有精品 | 十六以下岁女子毛片免费| 国产喷水女王在线播放| 大学生一级特黄的免费大片视频 | 伊人色院成人蜜桃视频|