PureBytes Links
Trading Reference Links
|
Tomasz,
may I ask once more:
what do I have to fill in, if I want to backtest the past
from January 1999 until today ?
-> SetBarsRequired( ______,__ ); ?
-> PREV = TrStopLevel = C[ __ ]; ?
and is there anything else except "nPips"that I have
to specify ??
Thanks again
Kindest regards
Robert
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx>
wrote:
> Hello,
>
> >the "maximum amount of thanks" for your help !!!!!
> >I will try to follow your explanation.
>
> You are welcome.
>
> >I tried to contact you via email several times,
> >but never received an answer. Might it be, that there
> >is something wrong with your email client or are you
> >"just" too busy ?
>
> I have checked my e-mail box and I have received
> only one e-mail from you recently (23 April). You have sent
> the same message to support address too and Marcin answered
> initially and today I have provided longer reply including the same
> code that I posted here.
> Did you send anything more that I am not aware of?
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "rocou" <rocou@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Monday, April 26, 2004 11:45 PM
> Subject: [amibroker] Re: Dear Traders, this seems to be an
absolutely amazing ...
>
>
>
>
> I tried to contact you via email several times,
> but never received an answer. Might it be, that there
> is something wrong with your email client or are you
> "just" too busy ?
>
> Thanks again for your very apreciated help !!
> Kindest regards
> Robert
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx>
> wrote:
> > 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
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/
|