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

[amibroker] Re: (fred) EasyLanguage question



PureBytes Links

Trading Reference Links

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...
> ?
> 
> --- 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/