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

[amibroker] (AFL: twitch simplified, plots OK) EasyLanguage question



PureBytes Links

Trading Reference Links

Simplified ARMA. Plots OK for me, twitch !=C
Please let me know if it works for you.
Note that x, u, u1, ... = _constants_,
not arrays, so I do not quite understand the BobR code you posted.
cheers-- alex

//---8<-------------------------------------------------
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;
}

tw = twitch(C,3);
Plot(tw,"twitch",1,1);
Plot(C,"c",1,64);
//---8<---------------------------------------

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