Thanks @beppe for that,
There is some sort of mysticism with Mr. Sibbett's original formulation of Demand Index. I did not find much of authentic research or study based literature in this regard. What intrigues the most is the relationship that is drawn between price and volume!
Mr. Kaufman refered to Wilders RSI.
In continuation to what Mr. Ho coded as DMI, in order to further smooth the noise and draw a close relationship with StochasticRSI I have taken help of Stochastic as below:
arg = ParamList( "Weighted Close", "Close|Avg|WtClose|Median", 2 );
Const = Param( "Constant", 5, .50, 10.5, 0.01 );
periods = Param( "DMI Periods", 19, 10, 40, 1 );
Lb = Param( "lb", 2, 2, 10, 1 );
Stochperiods = Param( "Stochperiods", 14, 1, 100, 1 );
Kperiods = Param( "Kperiods", 14, 1, 50, 1 );
Dperiods = Param( "Dperiods", 3, 1, 50, 1 );
OBthreshold = Param( "OBthreshold", 80, 55, 100, 5 );
OSthreshold = Param( "OSthreshold", 20, 0, 50, 5 );
if( arg == "Close" ) WtClose = C;
if( arg == "Avg" ) WtClose = Avg;
if( arg == "WtClose" ) WtClose = (H + L + C + C)/4;
if( arg == "Median" ) WtClose = (H + L)/2;
AvgTr = MA( HHV( H, Lb ) - LLV( L, Lb ), periods );
WtCratio = ( WtClose - Ref( WtClose, -1 ) ) / Min( WtClose, Ref( WtClose, -1 ) );
VolRatio = Volume / MA( Volume, periods );
Constant = ( ( WtClose * 3 ) / AvgTr ) * abs( WtCRatio );
Constant = IIf( Constant > Const, Const, Constant );
Constant = VolRatio / exp( Constant );
BuyP = IIf( WtCRatio > 0, VolRatio, Constant );
SellP = IIf( WtCRatio > 0, Constant, VolRatio );
BuyPressure = EMA( BuyP, periods );
SellPressure = EMA( SellP, periods );
tmpDI = IIf( SellPressure > BuyPressure, -BuyPressure / SellPressure, SellPressure / BuyPressure );
DMI = IIf( tmpDi < 0, -1 - tmpDI, 1 - tmpDI ) * 100;
llDMI = LLV( DMI, Stochperiods );
hhDMI = HHV( DMI, Stochperiods );
StochasticDMI = 100 * ( ( DMI - llDMI ) / ( hhDMI - llDMI + 0.00001 ) );
StocK_DMI = MA( StochasticDMI, Kperiods );
StocD_DMI = MA( StocK_DMI, Dperiods );
Plot( StocK_DMI, "DMIStochK(" + Kperiods + ")", ParamColor( "StochK", colorWhite ), styleLine | styleThick );
Plot( StocD_DMI, "DMIStochD(" + Dperiods + ")", ParamColor( "StochD", colorDarkBlue ), styleLine | styleThick );
PlotGrid( OBthreshold, colorRed, 1 );
PlotGrid( OSthreshold, colorGreen, 1 );
*This method of calculating Stochastics was dipicted from @portfoliobuilder's code as shown in this post - Stochastic RSI AFL
Modifications are most welcome.....
Thank again!