[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: (fred) EasyLanguage question



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/