Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

ADX/PDI/MDI v2.0 for Metastock
MIKE1
about 14 years ago
Metastock

Rating:
5 / 5 (Votes 1)
Tags:
metastock, trend

Trend following formula for Metastock.

Similar Indicators / Formulas

Schaff Trend Cycle Indicator
Submitted by kaiji over 13 years ago
AWS_Consolidation
Submitted by atrader100 about 10 years ago
BPDL Trend Filter Oscillator
Submitted by chsmcp about 11 years ago
Adaptive Wilders Smoothing
Submitted by aashish51 about 12 years ago
Cycle Indicator by Bill Irwin
Submitted by roszyk about 13 years ago
Flat Market Indicator (FMI)
Submitted by chsmcp about 11 years ago

Indicator / Formula

Copy & Paste Friendly
{ User inputs }
pds:=Input("ADX periods",1,100,14);
plot:=Input("plot:  [1]ADX,  [2]PDI,  [3]MDI,  [4]All",1,4,1);

{ Variables }
Lo1:=Ref(L,-1);
Hi1:=Ref(H,-1);

{ Plus Directional Movement (PDI) }
condUp:=H>Hi1 AND L>=Lo1
 OR H>Hi1 AND L<Lo1 AND H-Hi1>Lo1-L;
PlusDM:=Wilders(condUp*(H-Hi1),pds)/ATR(pds)
 *100;

{ Minus Directional Movement (MDI) }
condDw:=H<=Hi1 AND L<Lo1
 OR H>Hi1 AND L<Lo1 AND H-Hi1<Lo1-L;
MinusDM:=Wilders(condDw*(Lo1-L),pds)/ATR(pds)
 *100;

{ True Average Directional Movement (ADX) }
DMdiff:=Abs(PlusDM-MinusDM);
DMsum:=Max(PlusDM+MinusDM,.000001);
ADXtrue:=100*Wilders(DMdiff/DMsum,pds);

{ Final plot }
x:=If(plot=2,PlusDM,If(plot=3,MinusDM,ADXtrue));

{ Automatic OverBought/Sold historical levels }
avg:=Cum(x)/Cum(IsDefined(x));
pk:=Ref(x,-1)=HHV(x,3) AND Ref(x,-1)>avg;
pk1:=ValueWhen(1,pk,Ref(x,-1))*pk;
oBought:=Cum(pk1)/Cum(pk);
tr:=Ref(x,-1)=LLV(x,3) AND Ref(x,-1)<avg;
tr1:=ValueWhen(1,tr,Ref(x,-1))*tr;
oSold:=Cum(tr1)/Cum(tr);

{ Plot in own window }
oBought;oSold;
If(plot=4,PlusDM,x);
If(plot=4,MinusDM,x);
If(plot=4,ADXtrue,x)

0 comments

Leave Comment

Please login here to leave a comment.

Back