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

開拓者TB實現DMI指標[開拓者公式]

1、新建一個用戶函數,取名為DirMovement,設置返回值為布爾型!
代碼如下:

Params
? ? ? ? Numeric Length(14);
? ? ? ? NumericRef oDMIPlus;
? ? ? ? NumericRef oDMIMinus;
? ? ? ? NumericRef oDMI;
? ? ? ? NumericRef oADX;
? ? ? ? NumericRef oADXR;
? ? ? ? NumericRef oVolty;
Vars
? ? ? ? NumericSeries sDMI;
? ? ? ? NumericSeries sADX;
? ? ? ? NumericSeries sVolty;
? ? ? ? Numeric PlusDM;
? ? ? ? Numeric MinusDM;
? ? ? ? Numeric UpperMove;
? ? ? ? Numeric LowerMove;
? ? ? ? Numeric SumPlusDM(0);
? ? ? ? Numeric SumMinusDM(0);
? ? ? ? Numeric SumTR(0);
? ? ? ? NumericSeries AvgPlusDM;
? ? ? ? NumericSeries AvgMinusDM;
? ? ? ? Numeric SF; ? ? ? ? ? ? ? ? ? ? ? ?// smoothing factor
? ? ? ? Numeric Divisor;
? ? ? ? Numeric i;
? ? ? ? NumericSeries TRValue;
Begin
? ? ? ? SF = 1/length;
? ? ? ? TRValue = TrueRange;
? ? ? ? If(CurrentBar == Length)
? ? ? ? {
? ? ? ? ? ? ? ? for i = 0 To Length - 1
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? PlusDM = 0 ;
? ? ? ? ? ? ? ? ? ? ? ? MinusDM = 0 ;
? ? ? ? ? ? ? ? ? ? ? ? UpperMove = High[i] - High[ i + 1 ] ;
? ? ? ? ? ? ? ? ? ? ? ? LowerMove = Low[ i + 1 ] - Low[i] ;
? ? ? ? ? ? ? ? ? ? ? ? if (UpperMove > LowerMove and UpperMove > 0 )
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? PlusDM = UpperMove;
? ? ? ? ? ? ? ? ? ? ? ? }else if (LowerMove > UpperMove and LowerMove > 0)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? MinusDM = LowerMove ;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? SumPlusDM = SumPlusDM + PlusDM ;
? ? ? ? ? ? ? ? ? ? ? ? SumMinusDM = SumMinusDM + MinusDM ;
? ? ? ? ? ? ? ? ? ? ? ? SumTR = SumTR + TRValue[i] ;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? AvgPlusDM = SumPlusDM / Length ;
? ? ? ? ? ? ? ? AvgMinusDM = SumMinusDM / Length ;
? ? ? ? ? ? ? ? sVolty = SumTR / Length ;
? ? ? ? }Else if(CurrentBar > Length)
? ? ? ? {
? ? ? ? ? ? ? ? PlusDM = 0 ;
? ? ? ? ? ? ? ? MinusDM = 0 ;
? ? ? ? ? ? ? ? UpperMove = High - High[1] ;
? ? ? ? ? ? ? ? LowerMove = Low[1] - Low ;
? ? ? ? ? ? ? ? if (UpperMove > LowerMove and UpperMove > 0 )
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? PlusDM = UpperMove;
? ? ? ? ? ? ? ? }else if (LowerMove > UpperMove and LowerMove > 0 )
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? MinusDM = LowerMove ;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? AvgPlusDM = AvgPlusDM[1] + SF * ( PlusDM - AvgPlusDM[1] ) ;
? ? ? ? ? ? ? ? AvgMinusDM = AvgMinusDM[1] + SF * ( MinusDM - AvgMinusDM[1] ) ;
? ? ? ? ? ? ? ? sVolty = sVolty[1] + SF * ( TRValue ?- sVolty[1] ) ;
? ? ? ? }Else
? ? ? ? {
? ? ? ? ? ? ? ? oDMIPlus = InvalidNumeric;
? ? ? ? ? ? ? ? oDMIMinus = InvalidNumeric;
? ? ? ? ? ? ? ? oDMI = InvalidNumeric;
? ? ? ? ? ? ? ? oADX = InvalidNumeric;
? ? ? ? ? ? ? ? oADXR = InvalidNumeric;
? ? ? ? ? ? ? ? oVolty = InvalidNumeric;
? ? ? ? ? ? ? ? Return True;
? ? ? ? }
? ? ? ??
? ? ? ? if (sVolty > 0)
? ? ? ? {
? ? ? ? ? ? ? ? oDMIPlus = 100 * AvgPlusDM / sVolty ;
? ? ? ? ? ? ? ? oDMIMinus = 100 * AvgMinusDM / sVolty ;
? ? ? ? }else
? ? ? ? {
? ? ? ? ? ? ? ? oDMIPlus = 0 ;
? ? ? ? ? ? ? ? oDMIMinus = 0 ;
? ? ? ? }
?
? ? ? ? Divisor = oDMIPlus + oDMIMinus ;
? ? ? ? if (Divisor > 0)
? ? ? ? {
? ? ? ? ? ? ? ? sDMI = 100 * Abs( oDMIPlus - oDMIMinus ) / Divisor;
? ? ? ? }else
? ? ? ? {
? ? ? ? ? ? ? ? sDMI = 0 ;
? ? ? ? }
?
? ? ? ? if(CurrentBar > 0)
? ? ? ? {
? ? ? ? ? ? ? ? if (CurrentBar <= Length)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? sADX = Cum( sDMI ) / CurrentBar ;
? ? ? ? ? ? ? ? ? ? ? ? oADXR = ( sADX + sADX[ CurrentBar - 1 ] ) * 0.5 ;
? ? ? ? ? ? ? ? }else ?
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? sADX = sADX[1] + SF * ( sDMI - sADX[1] ) ;
? ? ? ? ? ? ? ? ? ? ? ? oADXR = ( sADX + sADX[ Length - 1 ] ) * 0.5 ;
? ? ? ? ? ? ? ? }
? ? ? ? }
? ? ? ? oVolty = sVolty;
? ? ? ? oDMI = sDMI;
? ? ? ? oADX = sADX;
? ? ? ? Return True;
End
?
?
?
?
2、新建技術指標,取名DMI,代碼如下:
?
Params
? ? ? ? Numeric Length(14);
Vars
? ? ? ? Numeric oDMIPlus( 0 );
? ? ? ? Numeric oDMIMinus( 0 );
? ? ? ? Numeric oDMI( 0 );?
? ? ? ? Numeric oADX( 0 );
? ? ? ? Numeric oADXR( 0 );?
? ? ? ? Numeric oVolty( 0 );
Begin
? ? ? ? DirMovement(Length, oDMIPlus, oDMIMinus, oDMI, oADX, oADXR, oVolty ) ;
? ? ? ? PlotNumeric( "DMI+" ,oDMIPlus);
? ? ? ? PlotNumeric( "DMI-" ,oDMIMinus);
? ? ? ? PlotNumeric( "ADX" ,oADX);
End
?

?

 

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

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

 


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

相關文章

    沒有相關內容
  主站蜘蛛池模板: avtt天堂网手机版亚洲| 国产亚洲欧美日韩俺去了| 亚洲gv天堂gv无码男同| 给我个免费看片bd| 天堂√最新版中文在线天堂| 亚洲欧洲自拍拍偷午夜色| 黑料不打烊最新地址| 天天舔天天干天天操| 亚洲一区二区三区亚瑟| 白嫩无码人妻丰满熟妇啪啪区百度| 国产成人免费高清视频网址 | 国产精品亚洲欧美| yin荡护士揉捏乱p办公室视频| 日本肉体xxxx裸交| 免费国产不卡午夜福在线 | 国产aⅴ一区二区三区| 老司机激情影院| 夜恋全部国产精品视频| 中文字幕亚洲乱码熟女一区二区 | 国产偷窥熟女精品视频| 国产区视频在线| 亚洲欧洲成人精品香蕉网| 网站视频大片www| 国产日韩欧美中文字幕| 99久久人妻精品免费一区| 日韩欧美国产高清| 亚洲神级电影国语版| 精品无码人妻一区二区三区品| 国产女人18毛片水真多1| 444kkk视频在线观看国产| 女人扒开屁股桶爽30分钟| 中文字幕视频网| 欧美精品中文字幕亚洲专区| 制服丝袜中文字幕在线| 被公侵犯肉体的中文字幕| 夜夜高潮夜夜爽夜夜爱爱| 中文在线免费不卡视频| 欧美日韩一卡二卡| 免费A级毛片无码久久版| 老司机免费在线| 国产又色又爽又黄的在线观看|