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

[amibroker] Re: Amibroker -> Plot Trailing Stop Level



PureBytes Links

Trading Reference Links

Thanks for all of your help - I will try to substitute PREV
with AMA function.

Kind regards
Robert

--- In amibroker@xxxxxxxxxxxxxxx, "Jayson" <jcasavant@xxxx> wrote:
> Robert,
> 
> You might want to have a look at AMA and AMA2 functions. the other 
solution
> is to reference the previous value via loops...You will find that 
AMA saves
> you a lot of coding..
> 
> Here is an example of the Laguerre RSI in MS using prev..
> 
> g:=0.5;
> L0:=((1-g)*C) + (g*PREV);
> L1:=(-g*L0) + Ref(L0,-1) + (g*PREV);
> L2:=(-g*L1) + Ref(L1,-1) + (g*PREV);
> L3:=(-g*L2) + Ref(L2,-1) + (g*PREV);
> 
> cu:= If(L0>L1, L0-L1,0) + If(L1>L2, L1-L2,0) + If(L2>L3, L2-L3,0);
> cd:= If(L0<L1, L1-L0,0) + If(L1<L2, L2-L1,0) + If(L2<L3, L3-L2,0);
> 
> temp:= If(cu+cd=0, -1,cu+cd);
> If(temp=-1,0,cu/temp)
> 
> 
> 
> And the same indicator in AFL using AMA2
> 
> g=0.5;
> 
> L0=AMA2((1-g)*C,1,g);
> L1=AMA2((-g*L0) +Ref( L0,-1),1,g);
> L2=AMA2((-g*L1) +Ref( L1,-1),1,g);
> L3=AMA2((-g*L2) +Ref( L2,-1),1,g);
> cu= IIf(L0>L1, L0-L1,0) +IIf(L1>L2, L1-L2,0) + IIf(L2>L3, L2-L3,0);
> cd= IIf(L0<L1, L1-L0,0) + IIf(L1<L2, L2-L1,0) + IIf(L2<L3, L3-L2,0);
> temp= IIf(cu+cd==0, -1,cu+cd);
> x=IIf(temp== -1,0,cu/temp);
> 
> and finally the code in AFL using loops.....
> 
> 
> g=0.5;
> L0[0]=0;//initialize values to zero
> L1[0]=0;
> L2[0]=0;
> L3[0]=0;
> 
> for( i=1;i<BarCount;i++) //loop through all bars
> {
> L0[i]= (1-g)*Close[i] + (g*L0[i-1]);
> L1[i]= -g*L0[i] + L0[i-1] + (g*L1[i-1]);
> L2[i]= -g*L1[i] + L1[i-1] + (g*L2[i-1]);
> L3[i]= -g*L2[i] + L2[i-1] + (g*L3[i-1]);
> }
> 
> cu= IIf(L0>L1, L0-L1,0) +IIf(L1>L2, L1-L2,0) + IIf(L2>L3, L2-L3,0);
> cd= IIf(L0<L1, L1-L0,0) + IIf(L1<L2, L2-L1,0) + IIf(L2<L3, L3-L2,0);
> temp= IIf(cu+cd==0, -1,cu+cd);
> x=IIf(temp==-1,0,cu/temp);
> 
> Plot(x,"",4);
> 
> 
> 
> Regards,
> 
> Jayson
> 
>   -----Original Message-----
>   From: rocou [mailto:rocou@x...]
>   Sent: Friday, April 23, 2004 3:18 PM
>   To: amibroker@xxxxxxxxxxxxxxx
>   Subject: [amibroker] Re: CMS Trailing Stop System in AFL
> 
> 
>   Hello Stephane,
> 
>   thanks for your answer. The definition of "PREV" and "Ref" is:
> 
>   PREV
>   The PREV constant allows you to create self-referencing formulas.
>   A self referencing formula is one that is able to reference
>   the "previous" period''s value of itself.
> 
>   Ref
>   References a previous OR subsequent element in a DATA ARRAY.
>   A positive PERIOD references "n" periods in the future; a negative
>   PERIOD references "n" periods ago.
> 
>   So how could we "translate" these formula from CMS´s
>   language into AFL ?
> 
>   The trading system should look like this - we still have
>   to substitute "PREV" and "Ref" ...
>   _________________________________________________________________
> 
>   nPips=Optimize("nPips",1,1,50,1);
> 
>   TrStopLevel = if(C=PREV, PREV, if(((Ref(C,-1)<PREV)
>   AND (C<PREV)), Min(PREV,C*(1+nPips)), if((Ref(C,-1)>PREV)
>   AND (C>PREV), Max(PREV,C*(1-nPips)), if(C>PREV,C*(1-nPips),
>   C*(1+nPips)))));
> 
>   Buy = Cross(Close,TrStopLevel);
>   Sell = Cross(TrStopLevel,Close);
>   Short =  Cross(TrStopLevel,Close);
>   Cover =  Cross(Close,TrStopLevel);
> 
>   PositionSize = 100000;
> 
>   _________________________________________________________________
> 
>   Thanks for your help again in advance
>   Regards
>   Robert
> 
> 
> 
> 
> 
> 
>   --- In amibroker@xxxxxxxxxxxxxxx, "Stephane Carrasset"
>   <s.carrasset@xxxx> wrote:
>   > Hello,
>   >
>   > I am not sure to have done a correct interpretation of Prev but 
it
>   is a begin
>   >
>   > Stephane
>   >
>   >
>   >
>   > TrStop[0]=Null;
>   >
>   > nP=0.1;
>   >
>   > for(i=1;i<BarCount;i++)
>   >
>   > {
>   >
>   > if(C[i]==TrStop[i-1])
>   >
>   > {
>   >
>   > TrStop[i]=TrStop[i-1];
>   >
>   > }
>   >
>   > else
>   >
>   > {
>   >
>   > if(C[i-1]<TrStop[i-1] && C[i]<TrStop[i-1])
>   >
>   > {
>   >
>   > TrStop[i]=Min(TrStop[i-1],C[i]*(1+nP));
>   >
>   > }
>   >
>   > else
>   >
>   > {
>   >
>   > if(C[i-1]>TrStop[i-1] && C[i]>TrStop[i-1])
>   >
>   > {
>   >
>   > TrStop[i]=Max(TrStop[i-1],C[i]*(1-nP));
>   >
>   > }
>   >
>   > else
>   >
>   > {
>   >
>   > if(C[i]>TrStop[i-1])
>   >
>   > {
>   >
>   > TrStop[i]=C[i]*(1-nP);
>   >
>   > }
>   >
>   > else
>   >
>   > {
>   >
>   > TrStop[i]=C[i]*(1+nP);
>   >
>   > }
>   >
>   > }
>   >
>   > }
>   >
>   > }
>   >
>   > }
>   >
>   >
>   >
>   >
>   >
>   > Up= Cross(Close,TrStop);
>   >
>   > Down= Cross(TrStop,C);
>   >
>   >
>   >
>   > /*
>   >
>   > if(C=PREV, PREV, if(((Ref(C,-1)<PREV)
>   >
>   > AND (C<PREV)), Min(PREV,C*(1+nPips)), if((Ref(C,-1)>PREV)
>   >
>   > AND (C>PREV), Max(PREV,C*(1-nPips)), if(C>PREV,C*(1-nPips),C*
>   >
>   > (1+nPips)))));
>   >
>   > */
>   >
>   > Plot(C,"",1,64);
>   >
>   > Plot(TrStop,"TrStop",2,1);
>   >
>   > PlotShapes(IIf(up,
>   >
>   > shapeUpArrow,shapeNone),colorGreen,0,L,-10);
>   >
>   > PlotShapes(IIf(down,
>   >
>   > shapeDownArrow,shapeNone),colorRed,0,H,-10);
>   >
>   >   ----- Original Message -----
>   >   From: rocou
>   >   To: amibroker@xxxxxxxxxxxxxxx
>   >   Sent: Friday, April 23, 2004 8:47 AM
>   >   Subject: [amibroker] CMS Trailing Stop System in AFL
>   >
>   >
>   >   Dear Traders,
>   >
>   >   may I please ask for your help - how do I have to program the
>   >   following
>   >   "trailing stop system" of my broker CMS in AFL, to
>   backtest/optimize
>   >   the "n pips" stop values ?
>   >
>   >   Thank you for your help in advance.
>   >   Kind regards
>   >   Robert
>   >
>   >
>   >   {Trailing Stop Loss}
>   >   TrStopLevel:=If(C=PREV, PREV, If(((Ref(C,-1)<PREV)
>   >   AND (C<PREV)), Min(PREV,C*(1+nPips)), If((Ref(C,-1)>PREV)
>   >   AND (C>PREV), Max(PREV,C*(1-nPips)), If(C>PREV,C*(1-nPips),C*
>   >   (1+nPips)))));
>   >
>   >   {Signal Up and Down}
>   >   Up:= Cross(Close,TrStopLevel);
>   >   Down:= Cross(TrStopLevel,C);
>   >
>   >   {OpenBuy, CloseBuy, OpenSell, CloseSell}
>   >   OpenBuy:= Up and (eventCount('OpenBuy')= eventCount
('CloseBuy'));
>   >   CloseBuy:= Down and (eventCount('OpenBuy')>eventCount
>   ('CloseBuy'));
>   >   OpenSell:=  Down and (eventCount('OpenSell')= eventCount
>   >   ('CloseSell'));
>   >   CloseSell:=  Up and (eventCount('OpenSell')>eventCount
>   ('CloseSell'));
>   >
>   >
>   >
>   >
>   >
>   >
>   >   Send BUG REPORTS to bugs@xxxx
>   >   Send SUGGESTIONS to suggest@xxxx
>   >   -----------------------------------------
>   >   Post AmiQuote-related messages ONLY to: 
amiquote@xxxxxxxxxxxxxxx
>   >   (Web page: http://groups.yahoo.com/group/amiquote/messages/)
>   >   --------------------------------------------
>   >   Check group FAQ at:
>   http://groups.yahoo.com/group/amibroker/files/groupfaq.html
>   >
>   >
>   >         Yahoo! Groups Sponsor
>   >               ADVERTISEMENT
>   >
>   >
>   >
>   >
>   >
>   > ----------------------------------------------------------------
----
>   ----------
>   >   Yahoo! Groups Links
>   >
>   >     a.. To visit your group on the web, go to:
>   >     http://groups.yahoo.com/group/amibroker/
>   >
>   >     b.. To unsubscribe from this group, send an email to:
>   >     amibroker-unsubscribe@xxxxxxxxxxxxxxx
>   >
>   >     c.. Your use of Yahoo! Groups is subject to the Yahoo! 
Terms of
>   Service.
>   >
>   >
>   >
>   >   __________ NOD32 1.732 (20040422) Information __________
>   >
>   >   This message was checked by NOD32 antivirus system.
>   >   http://www.nod32.com
> 
> 
> 
>   Send BUG REPORTS to bugs@xxxx
>   Send SUGGESTIONS to suggest@xxxx
>   -----------------------------------------
>   Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
>   (Web page: http://groups.yahoo.com/group/amiquote/messages/)
>   --------------------------------------------
>   Check group FAQ at:
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> 
> 
> 
> --------------------------------------------------------------------
--------
> --
>   Yahoo! Groups Links
> 
>     a.. To visit your group on the web, go to:
>     http://groups.yahoo.com/group/amibroker/
> 
>     b.. To unsubscribe from this group, send an email to:
>     amibroker-unsubscribe@xxxxxxxxxxxxxxx
> 
>     c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
Service.



Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.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/