PureBytes Links
Trading Reference Links
|
Here is the way , I coded it. T is the lookback period.
The formula is, for those that don't have the magazine,
CG = -Num/Denom; where
Num = Sum of ( 1 + j ) * Price(j) for j = 0 to T
Denom = Sum(Price,T); //AFL Formulation.
I was thinking , this could be done in AFL with WMA function. But
doesn't quite look the way vbscript code looks.
/*John Ehler's Center of Gravity Oscillator
** From S& C May 2002
**
**/
EnableScript("VBScript");
Price = (H+L)/2;
T = 40;
<%
Price = AFL("Price")
nSize = UBound( Price )
' nLength is the Look back period
nLength = AFL("T") - 1
'INITIALIZE THE ARRAYS
Num = Price ' need this for type definition
Denom = Price
for i = 0 to nSize
Num( i ) = 0
Denom( i ) = 1
next
' CG Oscillator Calculation
' Start Calculating from the Look back period point
for i = nLength to nSize
' Now Calculate the Num AND Denom Looking
' back from the Current price point
for j = 0 to nLength
Num( i ) = Num( i ) + ( 1 + j ) * Price( i - j )
Denom( i ) = Denom( i ) + Price ( i - j )
next
next
AFL("Num") = Num
AFL("Denom") = Denom
%>
CG = IIf(Denom > 0,-Num/Denom,0);
Plot(CG,"CG",4,1);
Plot(Ref(CG,-1),"",6,1);
Mohan
--- In amibroker@xxxx, "nkis22" <nkishor@xxxx> wrote:
> I tried coding John Ehler's Center of Gravity Indicator
> as published in TASC,May, 02, page 21.
>
> When you look back with "Ref" it works very well. However, how far
> to look back is always an important issue. So, instead of coding
with
> tons of Refs, I wanted this script to automate lookback thru
> N (N=5 in this case). It works, but when I change this N to 10, 15
or
> any other number, the indicator doesn't change. Why? There may
> be something wrong with the script. Can u help, please.
>
> /*J.F.Ehler's Center of Gravity, TASC, 05/02*/
> EnableScript("Vbscript");
> top=0; bot=0
> <%
> N=5
> price=AFL("Close")
> toptot=0
> bottot=0
> for i = 1 to N
> bottot=bottot+price(i)
> toptot=toptot+(price(i) * N)
> N=N-1
> next
> AFL.Var("top")=toptot
> AFL.Var("bot")=bottot
> %>
> ntop=top+Close;
> Cg=ntop/bot;
> Graph0=Cg;Graph0Style=8;
> Graph1=Cg-ref(cg,-1);
>
>
>
>
>
>
>
>
>
>
>
>
> .
|