I am trying to learn loops by using the example below from the help 
files. The sell price when the profit stop is hit should be defined 
by the line:
SellPrice[ i ] = Max( Open[ i ], ( 1 + firstProfitTarget * 0.01 ) * 
priceatbuy ); 
Instead of this, the close for the day is the sell price. Why? I am 
using Yahoo data with OHLC.
Thanks in advance
Larry

/*Example 4: partial exit (scaling out) on profit target stops
Scale In/Out - showing the number of scale-in and scale-out 
operations within given trade 
Example of code that exits 50% on first profit target, 50% on next 
profit target AND everything at trailing stop:*/

SetOption("NoDefaultColumns",0);                                
                        
SetOption("InitialEquity",1000);                                
                        
SetOption("AllowSameBarExit",1);                                
                        
SetOption("ActivateStopsImmediately",1);                        
                                
SetOption("AllowPositionShrinking",1);                          
                                
SetOption("FuturesMode",0);                                     
                        
SetOption("InterestRate",0);                                    
                        
SetOption("MaxOpenPositions",1000);                             
                                
SetOption("MinShares",.001);                                    
                        
SetOption("PriceBoundChecking",1) ;                             
                                
SetOption("CommissionMode",1); //% per trade                    
                                        
SetOption("CommissionAmount",0);                                
                        
SetOption("MarginRequirement",100); //No margin                 
                                        
SetOption("ReverseSignalForcesExit",1);                         
                                
SetOption("UsePrevBarEquityForPosSizing",1);                    
                                        
SetTradeDelays(0,0,0,0);                                

Buy = Cross( MA( C, 10 ), MA( C, 50 ) ); 
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 = 1; // profit 
SecondProfitTarget = 2;// in percent 
TrailingStop = 3;// also in percent 

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 ) 
                                
       { 
         // first profit target hit - scale-out 
         exit = 1; 
                  SellPrice[ i ] = Max( Open[ i ], ( 1 + 
firstProfitTarget * 0.01 ) * priceatbuy ); 
         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( 100, spsPercentOfEquity ); 
SetPositionSize( 50, spsPercentOfPosition * ( Buy == 
sigScaleOut ) ); // scale out 50% of position





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 other support material please check also:
http://www.amibroker.com/support.html

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

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


Reply via email to