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

[amibroker] Parameters



PureBytes Links

Trading Reference Links

Hi Stephane, sorry if i did not understand you right in 
the first place when you sent me your formula. 
I am still a "starter" concerning AFL. 

Thank you anyway for your help and effort.

Do you have any idea, how I can plot the applystop function:
"applystop(0,2,n,2,false,1)" ?

Thank you.
Kindest regards
Robert



--- In amibroker@xxxxxxxxxxxxxxx, "Stephane Carrasset" 
<s.carrasset@xxxx> wrote:
> snif...
> it plots exactly what I have sent to you
> 
> 
> TrStop[0]=Null;
> 
> nP = 0.004; // define your own value here 
> 
> 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: Tomasz Janeczko 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Monday, April 26, 2004 11:23 PM
>   Subject: Re: [amibroker] Dear Traders, this seems to be an 
absolutely amazing ...
> 
> 
>   Rocou,
> 
>   The "PREV" has been covered many times in the past.
>   It is easy to find in the mailing list archive
>   http://www.amibroker.com/listarchive.html
> 
>   Take a look at: 
>   http://groups.yahoo.com/group/amibroker/message/45225
> 
>   http://groups.yahoo.com/group/amibroker/message/4507
>   http://groups.yahoo.com/group/amibroker/message/11896
>   http://groups.yahoo.com/group/amibroker/message/31088
> 
>   Some of formulas using PREV may be rewritten using AMA/AMA2
>   but ALL (I mean *ALL*) of them can be rewritten using looping 
>   (see http://groups.yahoo.com/group/amibroker/message/45225 )
> 
>   Specifically your "problem" code:
>   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)))));
> 
>   can be rewritten using loop too.
> 
>   First step is to "UNFOLD" ugly written code to the form that is 
easier to read and understand:
> 
>   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) ) ) ) );
> 
> 
>   Now this can be rewritten using for loop:
> 
>   SetBarsRequired( 10000, 0 ); 
> 
>   nPips = 0.004; // define your own value here 
>   PREV = TrStopLevel = C[ 0 ]; // init first element 
> 
>   for( i = 1; i < BarCount; i++ ) 
>   { 
>     CurC = C[ i ]; // current value of close 
>     PrevC = C[ i - 1 ]; // previous bar value of close 
> 
>     CurTrStopLevel = 
>     IIf( CurC == PREV,  PREV,   
>            IIf( ( (PrevC < PREV) AND (CurC < PREV) ), 
>            Min( PREV, CurC * ( 1 + nPips) ), 
>            IIf( ( PrevC > PREV) AND ( CurC > PREV ),   
>                 Max( PREV, CurC * (1 - nPips ) ), 
>                 IIf( CurC > PREV, CurC * ( 1 - nPips), CurC * ( 1 + 
nPips) ) ) ) ); 
> 
>      TrStopLevel[ i ] = CurTrStopLevel; // store result 
>      PREV = CurTrStopLevel; // save previous value for next 
iteration 
>   } 
> 
>   Graph0 = TrStopLevel; // just for plotting
> 
>   What I did ?
>   It is fairly simple:
>   I have just wrapped the MS code into the for loop, replaced 
arrays with scalars
>   ( C replaced with CurC = C[ i ] , Ref( C, -1 ) replaced with 
PrevC = C[ i - 1 ].
>   PREV in my code is a temporary variable that holds previous value 
of calculation in the loop .
> 
>   This way I can keep almost entire code as it was.
> 
>   Advantage? It runs 100x faster than in Metastock. Try it - run 
backtest in MS and in AB and compare times.
> 
>   Best regards,
>   Tomasz Janeczko
>   amibroker.com
>   ----- Original Message ----- 
>   From: "rocou" <rocou@xxxx>
>   To: <amibroker@xxxxxxxxxxxxxxx>
>   Sent: Monday, April 26, 2004 9:51 PM
>   Subject: [amibroker] Dear Traders, this seems to be an absolutely 
amazing ...
> 
> 
>   Dear Traders, 
> 
>   this seems to be an absolutely amazing formula
>   from my broker CMS. Sorry if I am getting on your nerves again, 
>   but I really need your help how to EXACTLY translate the formula
>   into Amibrokerīs AFL for backtesting.
> 
>   The trailing stop is based on a certain amount of pips ("nPip")
>   that you define , NOT on any kind of ATR/volatility !!
> 
>   Buy/Sell and Short/Cover signals are generated, if close value
>   crosses the TrailingStoppLevel Line. That is the whole story.
>   You only have to define the amount of "nPip"īs.
> 
>   The image shows the 15min chart EURUSD and 15 as the value
>   for the nPips parameter.
> 
>   The image is in folder "Photos" of this group: 
>   
http://photos.groups.yahoo.com/group/amibroker/vwp?.dir=/&.src=gr&.dnm
>   =Trailing+Stop+System.jpg&.view=t&.done=http%
>   3a//photos.groups.yahoo.com/group/amibroker/lst%3f%26.dir=/%
26.src=gr%
>   26.view=t[/img]
> 
>   I politely ask all of you to help me EXACTLY translating this 
>   formula into AFL for backtesting/optimizing "nPip" possibilities. 
>   I guess it would be a great chance for all of us to trade with
>   a simple but very effective trading system.
> 
>   Kindest regards
>   Robert  
> 
>   Here again the formula from CMS:
>   ___________________________________________________________
>   {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 and CloseBuy}
> 
>   OpenBuy:= 
>   Up and (eventCount('OpenBuy')= eventCount('CloseBuy'));
>   CloseBuy:= 
>   Down and (eventCount('OpenBuy')>eventCount('CloseBuy'));
> 
>   {OpenSell and CloseSell}
> 
>   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 Links
> 
> 
> 
>    
> 
> 
> 
>   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. 
> 
> 
> 
>   __________ NOD32 1.737 (20040426) Information __________
> 
>   This message was checked by NOD32 antivirus system.
>   http://www.nod32.com



------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com.  Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/GHeqlB/TM
---------------------------------------------------------------------~->

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/