| 
 PureBytes Links 
Trading Reference Links 
 | 
Hi Tuzo,
  Here is the code I managed to build (with your help): Buy = RSI (14)<30;
 
 
  Sell = 0; // the system will exit // 50% of position if FIRST PROFIT TARGET stop is hit 
// 50% of position is SECOND PROFIT TARGET stop is hit // 100% of position if TRAILING STOP is hit FirstProfitTarget = 10; // profit SecondProfitTarget = 25; // in percent TrailingStop = 15; // also in percent 
 isInTrade = False; priceatbuy=0; highsincebuy = 0; exit = 0; for( i = 0; i < BarCount; i++ )     {          if ( NOT isInTrade AND Buy[ i ] )
              {                 isInTrade = True; 
                priceatbuy = BuyPrice[ i ];             }         if( isInTrade )             {                 highsincebuy = Max( High[ i ], highsincebuy );                 if( exit == 0 AND                     High[ i ] >= ( 1 + FirstProfitTarget * 0.01 ) * priceatbuy) 
                                             { // first profit target hit - scale-out                     exit = 1;                     Buy[ i ] = sigScaleOut;                     }                 if( exit == 1 AND 
                    High[ i ] >= ( 1 + SecondProfitTarget * 0.01 ) *                     priceatbuy )                         { // second profit target hit - exit                             exit = 2;                             SellPrice[ i ] = Max( Open[ i ], ( 1 + SecondProfitTarget * 
                            0.01 ) * priceatbuy );                         }                     if( Low[ i ] <= ( 1 - TrailingStop * 0.01 ) * highsincebuy )                         { // trailing stop hit - exit 
                              exit = 3;                             SellPrice[ i ] = Min( Open[ i ], ( 1 - TrailingStop * 0.01)                                  * highsincebuy );                         } 
                if( exit >= 2 )                         {                             Buy[ i ] = 0;                             Sell[ i ] = exit + 1; // mark appropriate exit code                             exit = 0; 
                            priceatbuy = 0; // reset price                             highsincebuy = 0;                         }             }     } SetPositionSize( 50, spsPercentOfPosition * ( Buy == sigScaleOut )); // scale out 50% of position 
 Short=0; Cover=0; /// /// /// /// ///
  For some reason, it does not work very well, as I don't see when the program gets out of 50% of the position on the equity curve.  I just see, as an example, that on the graph the buy is at 62 and the sell at 75 but I see only 9% and a sell at let's say 65 in the report. 
 Moreover, I don't know how to add other selling rules to that (where to put those rules in the code) and I don't understand the meaning of this part  Sell[ i ] = exit + 1; // mark appropriate exit code 
  If you can help me, as always it would be greatly appreciated!
  Thanks,
  Louis
  
2008/2/23, tuzo_wilson <j.tuzo.wilson@xxxxxxxxx>:
  
    
            --- In amibroker@xxxxxxxxxxxxxxx, "Louis Pr�fontaine" <rockprog80@xxx> 
wrote: 
 
> I now understand that for each bar "i", the program now looks if the bar 
> value is less than the barcount and then apply the formula below.  
But what 
> I don't understand there is how can "priceatbuy" differ from 0 since 
it was 
> defined as 0 just over (first line of the code).  How could 
"priceatbuy", 
> which was given a value of 0 could have a value over 0 then? 
>  
> I understand that the bar in which a buy was issued is represented 
as Buy 
> [i], but why the "priceatbuy ==0" before? 
 
priceatbuy is set to 0 before the loop but the the value is also set 
within the loop.  If priceatbuy is 0 and Buy[i] is non-zero then 
priceatbuy is set to the BuyPrice[i].  i.e. if there is a buy signal 
and we haven't set the buyatprice then set the buyatprice to be the 
Buy Price for that bar.   
 
Basically, priceatbuy lets you know if you are in a trade.  If it's 
zero then you aren't in a trade but if it's non-zero then you are in a 
trade so you need to check the profit target exit criteria. 
 
> priceatbuy=0; 
> highsincebuy = 0; 
> exit = 0; 
> for( i = 0; i < BarCount; i++ ) 
>     { 
>         if( priceatbuy == 0 AND Buy[ i ] ) 
>             { 
>                 priceatbuy = BuyPrice[ i ]; 
>             } 
>         if( priceatbuy > 0 ) 
>             { 
>                 highsincebuy = Max( High[ i ], highsincebuy ); 
>                 if( exit == 0 AND 
>                     High[ i ] >= ( 1 + FirstProfitTarget * 0.01 ) * 
> priceatbuy) 
 
Tuzo 
 
 
       
    
    
 
 
__._,_.___
 
Please note that this group is for discussion between users only. 
 
To get support from AmiBroker please send an e-mail directly to  
SUPPORT {at} amibroker.com 
 
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: 
http://www.amibroker.com/devlog/ 
 
For other support material please check also: 
http://www.amibroker.com/support.html 
    
  
      
  
__,_._,___
     |