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

[amibroker] Re: MIN function not working



PureBytes Links

Trading Reference Links

Tomasz,

I'll take a very close look indeed. Thanks.

And if it is the solution to my problem I'll owe you ...

And if it is not the solution... you'll hear from me (:

Best Regards,

Phsst

--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx>
wrote:
> Phhst,
> 
> There is a sample code of profit target stop included 
> in release notes document and 'whats new' section of the guide.
> 
> It can be easily adopted to your  needs (:
> 
> 
> /* a sample low-level implementation of Profit-target stop in AFL: */
> Short = your rule here
> 
> 
> trailstop =0;
> 
> for( i = 1; i < BarCount; i++ )
> {
> 
>    if( trailstop == 0 && Short[ i ] )  trailstop = High[ i ];
> 
>   if( trailstop > 0 AND High[ i ] > trailstop )
>   {
>    Cover[ i ] = True;
>    CoverPrice[ i ] = trailstop;
>    trailstop= 0;
>   } 
>   else Cover[ i ] = 0;
> 
>  if( trailstop > 0 )
>  {
>     trailstop = Min( High[ i - 1 ], trailstop ); 
>  }
> 
> }
> 
> 
> 
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message ----- 
> From: "Phsst" <phsst@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Thursday, August 07, 2003 10:21 PM
> Subject: [amibroker] Re: MIN function not working
> 
> 
> > Tomasz,
> > 
> > I'll go thru the tutorial again.
> > 
> > I'd like to implement your iterative solution (which works fine for
> > the explore I presented), but in a backtesting Short/Cover situation I
> > will need to do the iteration from the point at which each Short
> > signal is generated. 
> > 
> > This means that I'll need to iterate from the bar(num) of the current
> > Short signal rather than from the beginning of the array (i = 1).  
> > 
> > ie...    for (i = ShortBar; i < BarCount; i++);
> > 
> > I know it is probably documented somewhere, but I cannot find how to
> > start a 'for loop' at the current bar where a signal is generated.
> > 
> > A HINT pleeeazeee... (I'm about worn out on this one) <g>
> > 
> > Thanks for your help.
> > 
> > Phsst
> > 
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx>
> > wrote:
> > > Hello,
> > > 
> > > Min function works OK. It is just your formula that assumes
things that
> > > do not happen. Specificaly:
> > > 
> > > x = Min( Ref(H,-1) , Ref(CoverPrice, -1) );
> > > CoverPrice = x;
> > > 
> > > This statement is performed only ONCE
> > > So your CoverPrice = x
> > > does NOT affect evaluation of first line.
> > > 
> > > Your code makes assumption that it would be iterated but it won't.
> > > x array will be filled ONCE with minimum value.
> > > Since CoverPrice array is initialized to 9999 it will just
> > > give you Ref( H, -1 ).
> > > 
> > > Read the Tutorial: Understanding how AFL works.
> > > ===============================
> > > ===============================
> > > ===============================
> > > ===============================
> > > 
> > > If you want iteration (as in TS) you need to WRITE it explicitely:
> > > 
> > > CoverPrice[ 0 ] = High[ 0 ];
> > > 
> > > for( i = 1; i < BarCount; i++ ) 
> > > {
> > >     CoverPrice[ i ] = Min( High[ i - 1 ], CoverPrice[ i - 1 ] );
       
> > >  }
> > > 
> > > Best regards,
> > > Tomasz Janeczko
> > > amibroker.com
> > > ----- Original Message ----- 
> > > From: "Phsst" <phsst@xxxx>
> > > To: <amibroker@xxxxxxxxxxxxxxx>
> > > Sent: Thursday, August 07, 2003 8:18 PM
> > > Subject: [amibroker] MIN function not working
> > > 
> > > 
> > > > In a SHORT backtest I want to make my own assignments to the
> > > > CoverPrice array... then use the CoverPrice as the 'trailing
buy stop'
> > > > price that I use to stop out a position. 
> > > > 
> > > > I NEVER want the CoverPrice to INCREASE.
> > > > 
> > > > I ALWAYS want the CoverPrice to either REMAIN UNCHANGED OR
DECREASE
> > > > with each new bar.
> > > > 
> > > > I've tried many gyrations of AFL code to accomplish this and have
> > > > spent more hours on it than I care to admit to, but I have
narrowed my
> > > > problem down to the failure of the MIN function to return the
lowest
> > > > value.
> > > > 
> > > > Here is an extremely simple exploration to demonstrate the
problem:
> > > > ------------------------------------------
> > > > 
> > > > // Explore and Debug Trailing Stop logic
> > > >  
> > > > for( i = 1; i < BarCount; i++ ) // Pad CoverPrice array with HIGH
> > VALUES
> > > > {
> > > > CoverPrice[i] = 99999;        
> > > > }
> > > > 
> > > > // I verified that entire CoverPrice array now padded with 99999's
> > > > 
> > > > x = Min( Ref(H,-1) , Ref(CoverPrice, -1) );
> > > > CoverPrice = x;
> > > > 
> > > > Filter = 1;
> > > > 
> > > > AddColumn(x,"x = Min(Ref(H,-1),Ref(CoverPrice, -1))",6.3);
> > > > AddColumn(Ref(H, -1),"Ref(H, -1)",6.3);
> > > > AddColumn(Ref(CoverPrice, -1),"Ref(CoverPrice,-1)",6.3);
> > > > AddColumn(CoverPrice,"CoverPrice",6.3);
> > > > AddColumn(H,"H",6.3);
> > > > 
> > > > ----------------------------------------
> > > > 
> > > > Run the above exploration against any current issue (I'm
testing with
> > > > SPY) in AB and you will see that in the statement: 
> > > > 
> > > >     x = Min( Ref(H,-1) , Ref(CoverPrice, -1) );
> > > > 
> > > > variable x is ALWAYS being assigned the value of Ref(H, -1)
instead of
> > > > the lowest value of the two values. 
> > > > 
> > > > Am I missing something or is this an AB issue that I need to
refer to
> > > > Tomasz?
> > > > 
> > > > Regards,
> > > > 
> > > > Phsst
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 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 
> > > > 
> > > > Your use of Yahoo! Groups is subject to
> > http://docs.yahoo.com/info/terms/ 
> > > > 
> > > > 
> > > >
> > 
> > 
> > 
> > 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 
> > 
> > Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/ 
> > 
> > 
> >


------------------------ 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/l.m7sD/LIdGAA/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 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/