| 
 PureBytes Links 
Trading Reference Links 
 | 
| 
 Al, 
 I will respond in detail tommorrow as I was working whole day on 
bringing new 4.68.2 BETA that provides  
enhanced error reporting in AFL editor and couple of fixes to problems that 
surfaced with 4.68.1 
 Best regards, Tomasz 
Janeczko amibroker.com 
  ----- Original Message -----  
  
  
  Sent: Tuesday, January 25, 2005 2:42 
  PM 
  Subject: Re: [amibroker] Expectancy 
  
  Thanks for the clarification, 
  TJ. Yes, you are right. I did miss the ApplyStop function. I'm more 
  interested, however, in dynamic, volatility-based max stoplosses and 
  calculating risk as a function of equity, not as a function of the dollar 
  amount invested per trade. I took a crack at re-writing your Expectancy3 
  example using a 2*ATR(10) stoploss rather than a percentage stoploss, using a 
  constant defined risk as 1% of current equity. Now, don't shoot me, but is the 
  code below correct? I only changed 2 lines (bold font) plus the ApplyStop at 
  the end. 
  SetCustomBacktestProc("");  MaxLossPointStop 
  = 2*ATR(10); 
  // dynamic volatility 
  stoploss
  function FindEquityAtDateTime( eq, 
  dt, Value )  {     found = -1;     for( i = 0; i < BarCount AND found == -1; i++ )     { 
         if( dt[ i ] == Value ) found = i; 
      }     return IIf( found != -1, eq[ found  - 
  1 ], Null );  } 
   if( Status("action") == actionPortfolio )  { 
       bo = GetBacktesterObject();      
  bo.Backtest(1); 
  // run default backtest procedure 
       SumProfitPerRisk = 0;      NumTrades = 
  0;  <>    
  dt = DateTime();      eq = Foreign("~~~EQUITY", "C" ); 
     for( trade = bo.GetFirstTrade(); trade; 
  trade = bo.GetNextTrade() )     {        
  Risk = 0.01 * eq; //risk is defined as a 
  constant 1% of current equity >
        EquityAtEntry = 
  FindEquityAtDateTime( eq, dt, trade.EntryDateTime 
  ); 
  <>      RiskAsPecentOfCurrentEquity = 
  100 * Risk / EquityAtEntry; 
         RMultiple = 
  trade.GetProfit()/Risk;        
  trade.AddCustomMetric("Initial risk 
  $", 
  Risk  );                
  trade.AddCustomMetric("Equity at 
  entry", EquityAtEntry );        
  >trade.AddCustomMetric("Risk as % of 
  Eq.", RiskAsPecentOfCurrentEquity );  
        
  trade.AddCustomMetric("R-Multiple", RMultiple  ); 
         SumProfitPerRisk = SumProfitPerRisk + 
  RMultiple;        NumTrades++; 
      }      Expectancy3 = SumProfitPerRisk / 
  NumTrades;      bo.AddCustomMetric( "Expectancy (per risk)", Expectancy3 );      
  bo.ListTrades();  }  // your trading system 
  here 
  ApplyStop( stopTypeLoss, stopModePoint, MaxLossPointStop ); 
  
  
  Check AmiBroker web page 
  at: http://www.amibroker.com/
  Check 
  group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
  
  
  
Check AmiBroker web page at: 
http://www.amibroker.com/ 
 
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
  
 
 
Yahoo! Groups Links 
  |   
 |