PureBytes Links
Trading Reference Links
|
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...
?
--- In amibroker@xxxxxxxxxxxxxxx, "Fred" <ftonetti@xxxx> wrote:
>
> Again ... you are assuming that each statement is going to be
> executed more than once i.e. ONCE PER BAR ...
>
> If this hard to visualize then do it in Excel so you can see
it ...
> make a column for each variable ... write the equation for the
> variable at the top and copy it down ... nothing in any
calculation
> can be related to anything calculated further down in the AFL
because
> the results of what is further down will not have been calculated
at
> the time that the statements above are calculated ... again
because
> each one is executed ONLY ONCE ...
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Terry" <MagicTH@xxxx> wrote:
> >
> > I tried several variations, but I'm not getting it. It plots,
but
> has a
> > very odd reaction with different periods and does not emulate
the
> chart
> > previously posted and attached again. If any Tradestation person
> would
> > like to have a look.
> >
> >
> >
> > Here's the code I have so far (with notes).
> >
> >
> >
> > //================= TWITCH FUNCTION ======================
> >
> > /*
> >
> > EASYLANGUAGE FUNCTION:
> >
> > Inputs: price(NumericSeries), initLength(NumericSimple);
> >
> > variables: length(0), x(0), y(0), y1(0), y2(0), u(0), u1(0), u1_2
> (0),
> > u_2(0);
> >
> >
> >
> > If initLength <2 then length = 2 else length = initlength;
> >
> > if CurrentBar = 1 then begin
> >
> > x=(1- cosine(360/Length))/0.414213562;
> >
> > u=-x + squareroot(x*x+2*x);
> >
> > u1= 1.0-u;
> >
> > u1_2=u1*u1;
> >
> > u_2=u*u;
> >
> > y1=price;
> >
> > y2=y1;
> >
> > end;
> >
> > y=u_2* price+2*u1*y1-u1_2*y2;
> >
> > y2=y1;
> >
> > y1=y;
> >
> >
> >
> > TWITCH=Y
> >
> >
> >
> > //From Fred:
> >
> >
> >
> > Subject: [amibroker] Re: EasyLanguage question
> >
> >
> >
> > In the ela/d/s code ...
> >
> >
> >
> > Y = u_2* price+2*u1*y1-u1_2*y2;
> >
> > y2 = y1;
> >
> > y1 = y;
> >
> >
> >
> > The next time Y is calculated ( on the next bar ) Y2 will have
the
> >
> > value of Y from two bars ago ... Y1 will have the value of Y
from
> >
> > one bar ago ...
> >
> > */
> >
> > function twitch (tprice, initLength)
> >
> > { /*
> >
> > Code for this function coded by: BobR
> >
> > Code from Futures magazine Jan 2006, P39
> >
> > Adapted to Amibroker by TerryH on 1/31/2006
> >
> > */
> >
> >
> >
> > length = Max( 2, initLength);
> >
> > for (t = 1; t < BarCount; t++)
> >
> > {
> >
> > x[t] = (1 - cos(360 / length)) / 0.414213562;
> >
> > u[t] = -x[t] + sqrt(x[t]^2 + 2 * x[t]);
> >
> > u1[t] = 1 - u[t];
> >
> > //u1_2 = u1 * u1; //Substituted u1^2
> >
> > //u_2 = u * u; //Substituted u^2
> >
> > y1[t] = tprice[t-1];
> >
> > y2[t] = y1[t-1];
> >
> > }
> >
> > for (t = 1; t < BarCount; t++)
> >
> > {
> >
> > y[t] = u[t]^2 * tprice[t] + 2 * u1[t] * y1[t] - u1[t]^2
* y2
> [t];
> >
> > y2[t] = y1[t-1];
> >
> > y1[t] = y[t-1];
> >
> > }
> >
> > return y;
> >
> > }
> >
> > //================= END FUNCTION ======================
> >
> >
> >
> > Period = Param("Twitch Period",21,2,100,1,5); //number of bars
to
> use in
> > "average"
> >
> > TwValue = twitch(C,period);
> >
> >
> >
> > Plot(C,Name(),colorBlack,styleLine);
> >
> > Plot(TwValue,"Twitch",colorRed);
> >
> >
> >
> > --
> >
> > Terry
> >
> >
> >
> > -----Original Message-----
> > From: amibroker@xxxxxxxxxxxxxxx
[mailto:amibroker@xxxxxxxxxxxxxxx]
> On
> > Behalf Of Terry
> > Sent: Tuesday, January 31, 2006 12:50
> > To: amibroker@xxxxxxxxxxxxxxx
> > Subject: RE: [amibroker] Re: EasyLanguage question
> >
> >
> >
> > Thanks Fred. That should let me make this thing work with a loop.
> >
> >
> >
> > --
> >
> > Terry
> >
> >
> >
> > -----Original Message-----
> >
> > From: amibroker@xxxxxxxxxxxxxxx
[mailto:amibroker@xxxxxxxxxxxxxxx]
> On
> >
> > Behalf Of Fred
> >
> > Sent: Tuesday, January 31, 2006 11:43
> >
> > To: amibroker@xxxxxxxxxxxxxxx
> >
> > Subject: [amibroker] Re: EasyLanguage question
> >
> >
> >
> > In the ela/d/s code ...
> >
> >
> >
> > Y = u_2* price+2*u1*y1-u1_2*y2;
> >
> > y2 = y1;
> >
> > y1 = y;
> >
> >
> >
> > The next time Y is calculated ( on the next bar ) Y2 will have
the
> >
> > value of Y from two bars ago ... Y1 will have the value of Y
from
> >
> > one bar ago ...
> >
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "Terry" <MagicTH@xxxx> wrote:
> >
> > >
> >
> > > I am trying to convert a function called Twitcher from
> TradeStation
> >
> > > EasyLanguage. Twitcher concept was published in last month's
> >
> > FUTURES
> >
> > > Magazine. Code is from a user's group.
> >
> > >
> >
> > > QUESTION: Does the following code for y refer to the next bar
and
> >
> > next 2
> >
> > > bars or previous bars?
> >
> > >
> >
> > > Y = u_2* price+2*u1*y1-u1_2*y2;
> >
> > > y2 = y1;
> >
> > > y1 = y;
> >
> > >
> >
> > > Here's the entire EasyLanguage code (for the twitcher function)
> >
> > >
> >
> > > EASYLANGUAGE FUNCTION:
> >
> > > Inputs: price(NumericSeries), initLength(NumericSimple);
> >
> > > variables: length(0), x(0), y(0), y1(0), y2(0), u(0), u1(0),
u1_2
> >
> > (0),
> >
> > > u_2(0);
> >
> > >
> >
> > > If initLength <2 then length = 2 else length = initlength;
> >
> > > if CurrentBar = 1 then begin
> >
> > > x=(1- cosine(360/Length))/0.414213562;
> >
> > > u=-x + squareroot(x*x+2*x);
> >
> > > u1= 1.0-u;
> >
> > > u1_2=u1*u1;
> >
> > > u_2=u*u;
> >
> > > y1=price;
> >
> > > y2=y1;
> >
> > > end;
> >
> > > y=u_2* price+2*u1*y1-u1_2*y2;
> >
> > > y2=y1;
> >
> > > y1=y;
> >
> > >
> >
> > > TWITCH=Y
> >
> > > --
> >
> > > Terry
> >
> > >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > 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
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > 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/
|