Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

CENTER OF GRAVITY for Amibroker (AFL)

Rating:
5 / 5 (Votes 5)
Tags:
amibroker, bands, cog

COG: Center of Gravity indicator
AFL code by E.M.Pottasch, 2011
translated from: http://chartstudio.whselfinvest.com/files/CenterGravity_0.ctl

another translation of COG. This code faster and also comes with a timer which I will post separately.

About how to use it: there is material on the internet that explains. Note that this indicator repaints. Each time a new data point come in it uses all datapoints in the range to calculate the polynomial fit. So the fit is not stationary. Therefor it looks great but its use in trading is questionable. The chart shows how it is intended to use: The bands are heading up and the price is starting to enter the green zone this is where you buy.

Screenshots

Similar Indicators / Formulas

%B of Bollinger Bands With Adaptive Zones
Submitted by kaiji about 15 years ago
Trend Bands
Submitted by rogercraft almost 15 years ago
Jurik's Spandex Band
Submitted by xavier over 13 years ago
Bollinger %B
Submitted by konidena almost 15 years ago
Bollinger Band Squeeze & Expansion
Submitted by razasia almost 15 years ago
Bands
Submitted by tanujaya almost 14 years ago

Indicator / Formula

Copy & Paste Friendly
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
// COG: Center of Gravity indicator
// AFL code by E.M.Pottasch, 2011
// translated from: http://chartstudio.whselfinvest.com/files/CenterGravity_0.ctl
 
sx=Null;b=Null;ai=Null;x=Null;
reg=x1=x2=x3=z1=z2=z3=Null;
rega=x1a=x2a=x3a=z1a=z2a=z3a=Null
     
bi=BarIndex(); 
eb=LastValue(bi);  
order=Param("n-th Order",3,1,8,1); 
bars=Param("Lookback Period",100,50,500,1);
sv=ParamToggle("Use Selected Value","Off|On",1);
alt=ParamToggle("Error Levels","Fibonacci|Standard",0);
ecart=1.61803399;
   
if(sv)
{
    eb=SelectedValue(bi);
    bb=Max(0,eb-bars);
}
else
{
    bb=Max(0,eb-bars);
}
fin=eb;
nn=order+1;
sx[1]=bars+1;
 
if(fin>bars)
{
for(mi=1;mi<=2*nn-2;mi++)
{
    suml=0;
    for(n=0;n<=bars;n++)
    {
        suml=suml+n^mi;
    }
    sx[mi+1]=suml;
}
for(mi=1;mi<=nn;mi++)
{
    suml=0;
    for(n=0;n<=bars;n++)
    {
        if (mi==1)
            suml=suml+Close[fin-n];
        else
            suml=suml+Close[fin-n]*n^(mi-1);
            b[mi]=suml;
    }
}
for(jj=1;jj<=nn;jj++)
{
    for(ii=1;ii<=nn;ii++)
    {
        kk=ii+jj-1;
        ai[(ii-1)*nn+jj]=sx[kk];
    }
}
for(kk=1;kk<=nn-1;kk++)
{
    ll=0;
    mm=0;
    for(ii=kk;ii<=nn;ii++)
    {
        if(abs(ai[(ii-1)*nn+kk])>mm)
        {
            mm=abs(ai[(ii-1)*nn+kk]);
            ll=ii;
        }
    }
    if(ll==0) break;
    if(ll!=kk)
    {
        for(jj=1;jj<=nn;jj++)
        {
            tt=ai[(kk-1)*nn+jj];
            ai[(kk-1)*nn+jj]=ai[(ll-1)*nn+jj];
            ai[(ll-1)*nn+jj]=tt;
        }
        tt=b[kk];
        b[kk]=b[ll];
        b[ll]=tt;
    }
    for(ii=kk+1;ii<=nn;ii++)
    {
        qq=ai[(ii-1)*nn+kk]/ai[(kk-1)*nn+kk];
        for(jj=1;jj<=nn;jj++)
        {
            if(jj==kk)
                ai[(ii-1)*nn+jj]=0;
            else
                ai[(ii-1)*nn+jj]=ai[(ii-1)*nn+jj]-qq*ai[(kk-1)*nn+jj];
        }
        b[ii]=b[ii]-qq*b[kk];
    }
}
x[nn]=b[nn]/ai[nn*nn];
for(kk=1;kk<=nn-1;kk++)
{
    tt=0;
    ii=nn-kk;
    for(jj=1;jj<=nn-ii;jj++)
    {
        tt=tt+ai[(ii-1)*nn+ii+jj]*x[ii+jj];
        if(ai[(ii-1)*nn+ii]!=0)
            x[ii]=(b[ii]-tt)/ai[(ii-1)*nn+ii];
    }
}
for(n=0;n<=bars;n++)
{
    suml=0;
    for(kk=1;kk<=order;kk++)
    {
        suml=suml+x[kk+1]*n^kk;
    }
    reg[fin-n]=x[1]+suml;
}
}
SetChartOptions(0, chartShowDates);
Title = "Symbol: "+ Name()+ "\nPoly Order: "+order;
if(alt)
{
dev=StDev(Close-reg,bars);
sd=dev[fin];
x1a=reg+sd*1;//68%
x2a=reg+sd*2;//95%
x3a=reg+sd*3;//99.83%
z1a=reg-sd*1;
z2a=reg-sd*2;
z3a=reg-sd*3;
Plot(C, "Close",colorLightGrey,styleCandle);
Plot(reg,"reg",colorBlue,1);
Plot(x3a,"x3a",ColorRGB(255,0,0),styleThick);
Plot(x2a,"x2a",ColorRGB(255,100,100),styleDashed);
Plot(x1a,"x1a",ColorRGB(255,200,200),styleDashed);
Plot(z3a,"z3a",ColorRGB(0,255,0),styleThick);
Plot(z2a,"z2a",ColorRGB(100,255,100),styleDashed);
Plot(z1a,"z1a",ColorRGB(200,255,200),styleDashed);
PlotOHLC(x3a,x3a,x1a,x1a,"",ColorRGB(30,0,0),styleCloud|styleNoLabel,0,0,0,-1);
PlotOHLC(z1a,z1a,z3a,z3a,"",ColorRGB(0,30,0),styleCloud|styleNoLabel,0,0,0,-1);
}
else
{
dev=StDev(Close,bars);
sd=ecart*dev[fin];
x1=reg+sd/(1.382*1.618);
x2=reg+sd/1.382;
x3=reg+sd;
z1=reg-sd/(1.382*1.618);
z2=reg-sd/1.382;
z3=reg-sd;
Plot(C, "Close",colorLightGrey,styleCandle);
Plot(reg,"reg",colorBlue,1);
Plot(x3,"x3",ColorRGB(255,0,0),styleThick);
Plot(x2,"x2",ColorRGB(255,100,100),styleDashed);
Plot(x1,"x1",ColorRGB(255,200,200),styleDashed);
Plot(z3,"z3",ColorRGB(0,255,0),styleThick);
Plot(z2,"z2",ColorRGB(100,255,100),styleDashed);
Plot(z1,"z1",ColorRGB(200,255,200),styleDashed);
PlotOHLC(x3,x3,x2,x2,"",ColorRGB(30,0,0),styleCloud|styleNoLabel,0,0,0,-1);
PlotOHLC(z2,z2,z3,z3,"",ColorRGB(0,30,0),styleCloud|styleNoLabel,0,0,0,-1);
}

6 comments

1. rh0390
Dear empottasch bro

is it possible to share 2nd afl?

2. empottasch

the bottom chart you mean? That is posted here: http://wisestocktrader.com/indicators/2037-center-of-gravity-timing-indicator

3. santoshdts

Iam Finding errors in the last two lines..
Line 162 & 163
Too many arguments

4. empottasch

this is because you need to use version 5.21 or higher.

you can remove the last 4 digits, like:

PlotOHLC(x3,x3,x2,x2,"",ColorRGB(30,0,0),styleCloud|styleNoLabel);

5. shivaprasadmb

Great stuff. Markets stay in one standard deviation 70% of the time and this boat ride along the river is jolly good ride.This type of system would reduce ones anxiety in expecting the next move.

6. koallabear

hello ed
why do i get an out of range error?
Error 10.
Subscript out of range.
You must not access array elements outside 0..(BarCount-1) range.
is my ab version out of date?
holiday cheers!

Leave Comment

Please login here to leave a comment.

Back