腳本:
{ The Demand Index combines price and volume in }
{ such a way that it is often a leading indicator of }
{ price change. }
Inputs: Length (10);
Vars : WtCRatio(1), VolRatio(1), VolAvg(Volume),
BuyP(1), SellP(1), Sign1(+1),
WghtClose(Close), AvgTR(High - Low),
Constant(1), BuyPres(1), SellPres(1),
TempDI(1), DMI(1);
If CurrentBar = 1 then
Begin
VolAvg = Average(Volume, Length);
End;
WghtClose = (High + Low + Close + Close) * 0.25;
AvgTR = Average (Highest (High, 2) - Lowest ( Low, 2), Length);
VolAvg = ((VolAvg [1] * (Length - 1)) + Volume) / Length;
If WghtClose <> 0 and WghtClose[1] <> 0 and
AvgTR <> 0 and VolAvg <> 0 then
Begin
WtCRatio = (WghtClose - WghtClose[1]) / MinList(WghtClose,WghtClose[1]) ;
VolRatio = Volume / VolAvg;
Constant = ((WghtClose * 3) /AvgTR) * AbsValue (WtCRatio);
If Constant > 88 then Constant = 88;
Constant = VolRatio / ExpValue (Constant);
If WtCRatio > 0 then
Begin
BuyP = VolRatio;
SellP = Constant;
End
Else
Begin
BuyP = Constant;
SellP = VolRatio;
End;
BuyPres = ((BuyPres [1] * (Length - 1)) + BuyP) / Length;
SellPres = ((SellPres [1] * (Length - 1)) + SellP) / Length;
TempDI = +1;
If SellPres > BuyPres then
Begin
Sign1 = -1;
If SellPres <> 0 then TempDI = BuyPres / SellPres;
End
Else
Begin
Sign1 = +1;
If BuyPres <> 0 then TempDI = SellPres / BuyPres;
End;
TempDI = TempDI * Sign1;
If TempDI < 0
then
DMI = -1 - TempDI
else
DMI = +1 - TempDI ;
End;
Plot1(dmi);