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