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


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 99RE6这里有精品热视频| 亚洲欧美日韩国产精品一区二区| 国产chinese91在线| 国内揄拍国内精品| 三级黄色免费观看| 日本三级香港三级人妇99| 亚欧免费视频一区二区三区 | 国产精品线在线精品| a级毛片高清免费视频在线播放| 成年男女免费视频网站| 久久国产精品久久久久久| 欧洲精品码一区二区三区免费看| 亚洲系列中文字幕| 精品人人妻人人澡人人爽牛牛| 国产三级免费电影| 黄网址在线观看| 国产真实乱对白精彩| 14又嫩又紧水又多| 国产高清在线免费视频| chinese国产xxxx实拍| 尹人久久久香蕉精品| 中文字幕中文字幕中中文| 日本不卡在线观看| 久久无码精品一区二区三区| 最近2019免费中文字幕视频三| 亚洲伊人久久大香线蕉综合图片| 欧美日韩小视频| 亚洲欧美日韩自偷自拍| 波多野结衣bt| 亚洲综合无码无在线观看| 男人天堂免费视频| 伊人久久大香线蕉精品| 粗大的内捧猛烈进出小视频| 免费黄色福利视频| 精品乱码久久久久久中文字幕| 午夜欧美精品久久久久久久 | 在线观看中文字幕第一页| av一本久道久久综合久久鬼色| 精品国产www| 四虎国产成人永久精品免费| 色噜噜狠狠狠狠色综合久一|