PureBytes Links
Trading Reference Links
|
Any time...
cheers-- alex
--- In amibroker@xxxxxxxxxxxxxxx, "Terry" <MagicTH@xxxx> wrote:
>
> Thanks to Fred and Dalengo for getting Twitch converted to
Amibroker.
>
> Here is the completed code that appears to be working as intended.
>
>
>
> //---------------- START OF CODE ---------------------
>
>
>
> //TWITCHER v4. Concept from FUTURES Magazine, January 2006, page
39.
>
> //Code converted from EasyLanguage by Fred AND dalengo.
>
> //Final changes by Terry on 2/1/2006
>
>
>
> // The formula for X seems to be dealing with degrees rather than
> radians and
>
> // probably should be changed to use cos(3.14159 * 2 / Length)
instead
> of cos(360 / Length)
>
> // ... Fred
>
>
>
> SetChartOptions(1,chartShowDates);
>
>
>
> initLength = Param("initLength", 21, 2, 60, 1); //To use a list,
comment
> OUT this line
>
>
>
> length = Max(2,initLength);
>
>
>
> x = (1 - cos(3.14159 * 2 / Length)) / 0.414213562;
>
> u = -x + sqrt(x ^ 2 + 2 * x);
>
> u1 = 1.0 - u;
>
> u1_2 = u1 ^ 2;
>
> u_2 = u ^ 2;
>
> y[0] = C[0];
>
> y[1] = C[1];
>
>
>
> for (i = 2; i < BarCount; i++)
>
> {
>
> y[i] = u_2 * C[i] + 2 * u1 * y[i-1] - u1_2 * y[i-2];
>
> }
>
>
>
> Plot(y, "Twitch", colorWhite);
>
> Plot(C, "Close", colorRed);
>
>
>
> Filter = 1;
>
>
>
> AddColumn(x, "x", 1.5);
>
> AddColumn(u, "u", 1.5);
>
> AddColumn(u1, "u1", 1.5);
>
> AddColumn(u1_2, "u1_2", 1.5);
>
> AddColumn(u_2, "u_2", 1.5);
>
> AddColumn(y, "y", 1.5);
>
> AddColumn(C, "C", 1.5);
>
>
>
> Title = NumToStr(initLength ,1.0) + " {{VALUES}}";
>
> //---------------- END OF CODE ---------------------
>
>
>
> --
>
> Terry
>
>
>
> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
On
> Behalf Of Fred
> Sent: Tuesday, January 31, 2006 22:30
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: (fred #2) EasyLanguage question
>
>
>
> Sorry ... didn't look at the reference ...
>
>
>
> Removing the function, simplifying the code somewhat, adding some
>
> breathing room for the operators and making use of AddColumn's to
>
> investigate the constants one can see that the formula appears to
be
>
> doing what it is supposed to as the results can be checked easily
>
> enough against Excel ...
>
>
>
> However, the formula for X seems to be dealing with degrees rather
>
> than radians and probably should be changed to read ...
>
>
>
> x = (1 - cos(3.14159 * 2 / Length)) / 0.414213562;
>
>
>
> --------------------------------------------------
>
>
>
> initLength = Param("initLength", 21, 2, 60, 1);
>
>
>
> if (initLength < 2)
>
> length = 2;
>
> else
>
> length = initlength;
>
>
>
> x = (1 - cos(360 / Length)) / 0.414213562;
>
> u = -x + sqrt(x ^ 2 + 2 * x);
>
> u1 = 1.0 - u;
>
> u1_2 = u1 ^ 2;
>
> u_2 = u ^ 2;
>
> y[0] = C[0];
>
> y[1] = C[1];
>
>
>
> for (i = 2; i < BarCount; i++)
>
> {
>
> y[i] = u_2 * C[i] + 2 * u1 * y[i-1] - u1_2 * y[i-2];
>
> }
>
>
>
> Plot(y, "twitch", colorWhite);
>
> Plot(C, "Close", colorRed);
>
>
>
> Filter = 1;
>
>
>
> AddColumn(x, "x", 1.5);
>
> AddColumn(u, "u", 1.5);
>
> AddColumn(u1, "u1", 1.5);
>
> AddColumn(u1_2, "u1_2", 1.5);
>
> AddColumn(u_2, "u_2", 1.5);
>
> AddColumn(y, "y", 1.5);
>
> AddColumn(C, "C", 1.5);
>
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "dalengo" <dalengo@xxxx> wrote:
>
> >
>
> > "Read your statements one at a time ONCE AND ONLY ONCE and tell
me "
>
> > OK, lets do that::
>
> >
>
> > y1=y2=P[0] // y,y1,y2 in my AFL are numbers, not arrays
>
> > ____________________________________
>
> > procedure::
>
> > y = u_2* P[i]+2*u1*y1-u1_2*y2;
>
> > y2=y1;
>
> > y1=y;
>
> > ====================================
>
> > Run it from i=1 to N-1::
>
> >
>
> > i=1
>
> > y = u_2* P[1]+2*u1*y1-u1_2*y2;
>
> > y2=y1 /* =P[0] */;
>
> > y1=y /* =tw[1], #1 array member that we got here;
>
> >
>
> > i=2
>
> > y = u_2* P[2]+2*u1*y1-u1_2*y2; //NB: here y1=tw[1], y2=P[0]
>
> > y2=y1 // =tw[1] ;
>
> > y1=y // =tw[2], #2 array member that we got at this step};
>
> > // here we get tw[2] as a function of tw[1], etc.
>
> > .......
>
> >
>
> > as we see, tw[i+1] depends on tw[i] (and P[i+1], ...)
>
> > I would call this autoregression, or a recursive relation
>
> (wikipedia)
>
> >
>
> > Is that correct? I refer to my code in #93076::
>
> > /////////////////////////////////////////////////////
>
> > function twitch(price,initLength)
>
> > // alex-- ARMA(2) "twitch" v.2 simplified
>
> > {
>
> > length = x = u = u1 = u1_2 = u_2 =0;
>
> > y=y1=y2=0;
>
> > if ( initLength < 2 ) length = 2; else length = initlength;
>
> >
>
> >
>
> > x =(1- cos(360/Length))/0.414213562;
>
> > u =-x + sqrt(x*x+2*x);
>
> > u1 = 1.0-u;
>
> > u1_2 =u1*u1;
>
> > u_2 =u*u;
>
> > y1 =price[0];
>
> > y2 =y1;
>
> > tw = Cum(0);
>
> > for ( i = 1; i < BarCount; i++ )
>
> > {
>
> > y = u_2* price[i]+2*u1*y1-u1_2*y2;
>
> > y2=y1;
>
> > y1=y;
>
> > tw[i]=y;
>
> > }
>
> > return tw;
>
> > }
>
> >
>
> > initL = Param("init",3,2,50,1);
>
> > tw = twitch(C,initL);
>
> >
>
> > Plot(tw,"twitch",1,1);
>
> > Plot(C,"c",1,64);
>
> >
>
> >
>
> > --- In amibroker@xxxxxxxxxxxxxxx, "Fred" <ftonetti@xxxx> wrote:
>
> > >
>
> > > Read your statements one at a time ONCE AND ONLY ONCE and tell
me
>
> > > where you see recursion ...
>
> > >
>
> > > --- In amibroker@xxxxxxxxxxxxxxx, "dalengo" <dalengo@xxxx>
wrote:
>
> > > >
>
> > > > could you please take a look at msg #93076.
>
> > > > this is a simple recursion, constructs a moving average.
>
> > > > do you see any problem with the code? it should do what
>
> > > > TS code does. Code below does not...
>
> > > > ?
>
> > > >
>
> >
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Please note that this group is for discussion between users only.
>
>
>
> To get support from AmiBroker please send an e-mail directly to
>
> SUPPORT {at} amibroker.com
>
>
>
> For other support material please check also:
>
> http://www.amibroker.com/support.html
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
> http://groups.yahoo.com/group/amibroker/
>
>
>
> amibroker-unsubscribe@xxxxxxxxxxxxxxx
>
>
>
> http://docs.yahoo.com/info/terms/
>
------------------------ Yahoo! Groups Sponsor --------------------~-->
Try Online Currency Trading with GFT. Free 50K Demo. Trade
24 Hours. Commission-Free.
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/GHeqlB/TM
--------------------------------------------------------------------~->
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|