| 
 PureBytes Links 
Trading Reference Links 
 | 
>From an earlier contributor....
Subject: Sibbits Demand Index
 Resent-Date: Thu, 29 Apr 1999 20:09:40 -0700
        Date: Thu, 29 Apr 1999 20:08:58 -0700
        From: David Fenstemaker <dfens@xxxxxxxxxxxxx>
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;
Demand.Index = Return ;
Paul wrote:
> Hi All,
>
> I still haven't found James Sibbet's Demand Index for easylanguage. I was
> wondering if anyone has found it in their archives could they email it over
> please.
>
> Regards,
> Paul
Attachment:
Description: "Di.ela" 
 |