您現在的位置:程序化交易>> 期貨公式>> 交易開拓者(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  有需要幫忙請點擊這里留言!!!進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 中文字幕在线影院| 亚洲美免无码中文字幕在线| 4hc44四虎www在线影院男同 | 成年女人免费v片| 亚洲一区二区三区在线观看蜜桃| 看一级毛片女人洗澡| 国产大学生粉嫩无套流白浆| 91啦在线视频| 巨胸动漫美女被爆羞羞视频| 久久精品老司机| 欧美边吃奶边爱边做视频| 同桌好舒服好粗好硬| 黑人巨茎大战欧美白妇| 国产美女无遮挡免费视频| 一级做a爰片久久毛片图片 | 天堂va在线高清一区| 中文无码日韩欧免费视频| 极品丝袜乱系列在线阅读| 人人揉人人捏人人添| 茄子视频国产在线观看| 国产激情对白一区二区三区四| 99热这里有免费国产精品| 成人深夜视频在线观看| 久久国产精品久久精品国产| 欧美在线观看第一页| 亲密爱人免费观看完整版 | 精品无码国产AV一区二区三区| 国产孕妇孕交一级毛片| 2018天天干天天操| 天天做天天爱夜夜想毛片| 亚洲av丰满熟妇在线播放| 色香视频在线观看| 国产猛男猛女超爽免费视频| 97一区二区三区四区久久| 好男人资源视频在线播放| 亚洲中文字幕久久精品无码a| 特级毛片www| 午夜神器成在线人成在线人免费| 青青青国产精品手机在线观看| 国产福利免费视频| 222www在线观看免费|