Stock Portfolio Organizer
The ultimate porfolio management solution.
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
CENTER OF GRAVITY for Amibroker (AFL)
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
Indicator / Formula
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
Leave Comment
Please login here to leave a comment.
Back
is it possible to share 2nd afl?
the bottom chart you mean? That is posted here: http://wisestocktrader.com/indicators/2037-center-of-gravity-timing-indicator
Iam Finding errors in the last two lines..
Line 162 & 163
Too many arguments
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);
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.
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!