PureBytes Links
Trading Reference Links
|
Romi & TaoOfDow,
For the sake of clarification on Sibbett's Demand Index, I believe that this
indicator is a market breadth indicator, as opposed to a volume indicator.
It's a simple enough formula that it could be easily calculated with either
Advancing/Declining Volume (breadth info) or simply volume of the issue
being traded. It appears to me that this is intended to be a breadth
indicator according to Perry Kaufman's book (someone correct me if I'm
wrong).
In my understanding, market breadth information is defined as
Advancing/Declining Issues (ie. what OddBall uses as it's trigger) or
Advancing/Declining Volume over an entire Index or exchange, whereas a
volume indicator simply includes the volume of the issue being traded into
it's calculation.
The code posted by TaoOfDow for Sibbett's Demand Index is an interesting
volume indicator that appears to give some pretty decent signals, but it is
so radically different from the DemandIndex that is defined in Kaufman's
book, I just have to ask the question... Tao, where did you come across your
definition for Sibbett's Demand Index?
Lance
Did I post this twice? If so, sorry.
As promised, Sibbet's Demand Index. For some reason, you don't see
this around, but it is a really good indicator. I trade the peaks.
It uses volume, so its not as good if used on mutual funds or
indexes.
The ELA has both the indicator and the function.
The indicator:
{ James Sibbet's Demand Index Indicator }
{ Programmed by David Fenstemaker }
{ The Demand Index combines price and volume in }
{ such a way that it is often a leading indicator of }
{ price change. }
Inputs: Length(5);
Vars: DMIndx(0);
DMIndx = DeMand.Index (Length) ;
Plot1(DMIndx, "DMI") ;
Plot2(0, "Zero") ;
{ James Sibbet's Demand Index Function }
{ Programmed by David Fenstemaker }
{ The Demand Index combines price and volume in }
{ such a way that it is often a leading indicator of }
{ price change. }
The function:
Inputs: Length (NumericSeries);
Vars : WtCRatio(1), VolRatio(1), VolAvg(Volume),
BuyP(1), SellP(1), Sign(+1), Return(0),
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;
Return = 0 ;
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
Sign = -1;
If SellPres <> 0 then TempDI = BuyPres / SellPres;
End
Else
Begin
Sign = +1;
If BuyPres <> 0 then TempDI = SellPres / BuyPres;
End;
TempDI = TempDI * Sign;
If TempDI < 0
then
DMI = -1 - TempDI
else
DMI = +1 - TempDI ;
Return = DMI {* 100.0} ;
End;
Lance Fisher wrote:
> Romi,
>
> >From pg. 243 of Trading Systems and Methods by P. Kaufman.
>
> "...The technique bears a resemblance to the approach used in Wilder's
RSI.
> It can be used as an oscillator with individual daily values or
accumulated
> into an index. The individual days are calculated as:
>
> @sum(upside volume, 10)
> Demand Index = -------------------------
> @sum(downside volume, 10)
>
> where @sum is a function that sums the past 10 days of upside and downside
> volume..."
>
> Basically, the formula stated in english is - "The sum of upside volume
for
> the past ten days, divided by, the sum of downside volume for the past ten
> days"
>
> The EL code would go something like...
>
> Vars: DI(0),
> UpSum(0),
> DnSum(0);
>
> UpSum = Summation(High of Data2, 10); {Or wherever it is that contains the
> upside volume data}
> DnSum = Summation(Low of Data2, 10) {Or wherever it is that contains the
> downside volume data}
>
> DI = IFF(DnSum <> 0, UpSum / DnSum, DI[1]);
>
> Plot1(DI, "DemandIndex");
>
> Cheers,
>
> -Lance
>
> -----Original Message-----
> From: Romi Ghose [mailto:r.ghose@xxxxxxxxx]
> Sent: Friday, April 26, 2002 11:42 AM
> To: omega-list@xxxxxxxxxx
> Subject: Sibbet's Demand Index
>
> Does anybody have the formula for Demand Index that was originally
developed
> by James Sibbet?
> Thanks
> Romi
|