| 
 This way you can use a range: Maximum 20% minimum 
10% of equity: 
  
rsk = -2; // 2%  PositionSize = Min(-10,Max(-20,rsk * Ref(C,-1) / 
stopLoss));  
  
In practice it most of the 
time it probably either uses 10% or 20%.  
  
Ed 
 
  
  ----- Original Message -----  
  
  
  Sent: Sunday, December 12, 2004 3:40 
  PM 
  Subject: [amibroker] Re: PositionSize / 
  Capital 
  
 
  Al & Ed, This is exactly where I ended up 
  yesterday (hours after my post).  When I tried it, though, I always ended 
  up taking the 20% positions  rather than those defined by my risk. Thinking 
  it wasn't working, I  gave up and went to bed.
  But since someone 
  else thinks this should work, obviously I need to  play with it some 
  more.
  Dan
  --- In amibroker@xxxxxxxxxxxxxxx, "ed nl" 
  <ed2000nl@xxxx> wrote: > Al, >  > about the 
  part:   "Your suggestion to limit positionsize not to  exceed any 
  more than 20% of equity may be the solution since it goes  hand in hand 
  with the philosophy of money management. That is, do not  allow any one 
  position to exceed, say, 10 or 15 percent of your  equity. The Turtles did 
  that, and I think lots of traders do that,  too. So, I see nothing wrong 
  with that. Have you coded this in AFL" >  > I think you can solve 
  this using: >  > rsk = -2; // 2% > PositionSize = 
  Max(-20,rsk * Ref(C,-1) / stopLoss);  >  > now it will never use 
  more than 20% of equity. >  > About the minimum number of trades I 
  don't know. In my system that  would be impossible because sometimes good 
  entries just dry up and I  can't find even find 5. >  > rgds, 
  Ed >  >   ----- Original Message ----- 
   >   From: Al Venosa  >   To: 
  amibroker@xxxxxxxxxxxxxxx  >   Sent: Sunday, December 12, 2004 
  3:11 PM >   Subject: Re: [amibroker] Re: PositionSize / 
  Capital >  >  >   Dan: > 
   >   Thanks for the ideas. You're not rambling; you're 
  thinking, and  this discussion is healthy. Good ideas may stem from the 
  discussion,  so by all means, keep posting.  >  >   I 
  don't think you need a new built-in function called MinPos.  Maybe TJ came 
  up with a solution the other day by suggesting you set  the max open 
  positions to some large value like 10 of 15, even though  you plan to take 
  on no more than 5 at any time. So, if you don't use  up all your equity 
  using volatility-based positionsizing, you might  add on new positions with 
  this approach. I haven't tested this idea  yet, but I will. The problem 
  occurs when the opposite happens,  namely, all your equity is used up 
  before you are able to add your  4th and 5th positions. Your suggestion to 
  limit positionsize not to  exceed any more than 20% of equity may be the 
  solution since it goes  hand in hand with the philosophy of money 
  management. That is, do not  allow any one position to exceed, say, 10 or 
  15 percent of your  equity. The Turtles did that, and I think lots of 
  traders do that,  too. So, I see nothing wrong with that. Have you coded 
  this in AFL?  I'm like Yuki: good with concepts buy lousy with creative 
   programming.  >  >   Al Venosa > 
   >   danielwardadams wrote: >  > 
   >     After thinking about this some more, I think 
  all I've described  is  >     what could be 
  accomplished with two more built-in variables.  MinPos 
   >     could say you want no less than some minimum 
  number of  positions (5  >     in my example) and 
  MaxPositionSize could say you want to  allocate no 
   >     more than X% of capital to any one position 
  (20% in my example). >  >     Within these 
  constraints, your actual position sizing methond  could 
   >     be anything you want. > 
   >     I'm probably rambling ......... > 
   >     Dan >  >     
  --- In amibroker@xxxxxxxxxxxxxxx, "danielwardadams" 
   >     <danielwardadams@xxxx> 
  wrote: >     >  >     
  > Al & Anthony,  >     > I've also seen 
  the lower returns for volatility based versus  equal 
   >     > equity position sizing in the past and 
  didn't know what to do  about  >     > it 
  (assuming I wanted more positions for more 
   diversification). >     > 
   >     > I'm not sure how one would code it in 
  .AFL, but would the  following  >     > 
  represent a reasonable compromise? >     > 
   >     > (1) Start with an equal equity based 
  model based on, say,  5  >     > positions 
  (position size = -20). So each part of the pie  equals 20% 
   >     > of total 
  equity. >     > (2) Determine actual position 
  size within each piece of the  pie  >     based 
   >     > on volatility based sizing. So, 
  depending on your risk  parameter,  >     one 
   >     > might use only 17% of one piece of the 
  pie, 13% of another  piece,  >     and 
   >     > 20%, 8%, and 11% of the other 
  pieces. >     > (3) Sum the used portions of the 
  pie (in this case  17+13+20+8+11 =  >     > 
  69%) and see what you have left. 31% in case. >     
  > (4) Allocate the remaining cash according to the equal equity 
   >     model.  >     > 
  This means you get one more 20% piece of pie and only have  11% cash 
   >     > remaining. 
   >     > (5) Apply the above using your ATR based 
  position sizing  >     recursively 
   >     > until your cash is minimized. So if you 
  only are able to use  9% of  >     > the piece 
  of pie left in (4) you take the 11% left from that  piece 
   >     > plus the 11% cash and you have 22% -- 
  enough for another  position.  >     So 
   >     > in this case you end up with 7 positions 
  and only 2% left in  cash. >     > So your 
  cash is minimized and all your positions adhere to  the ATR 
   >     > based position 
  sizing. >     >  >     
  > Like I say, I have no idea how to code it but intuitively it  makes 
   >     > sense to 
  me. >     >  >     > 
  Thoughts/comments? >     > 
   >     > Dan >     > 
   >     > (And, yes, I'm sure I'm not the first 
  person to think of it  so my  >     > 
  apologies to those who have gone before). >     > 
   >     > --- In amibroker@xxxxxxxxxxxxxxx, 
  "Anthony Faragasso"  >     <ajf1111@xxxx> 
   >     > wrote: >     
  > > Hello Al, >     > > 
   >     > > You 
  stated: >     > > 
   >     > > "the lower the volatility, the 
  lower the risk and  therefore, the  >     > 
  smaller the positionsize for that stock. " >     
  > >  >     > > Is this a correct 
  assumption ? ...Would you want a larger  >     > 
  positionsize on a less risk position , and a smaller position  on a 
   >     > more volatile one 
  ? >     > >  >     
  > > Anthony >     > >   ----- 
  Original Message -----  >     > >   
  From: Al Venosa  >     > >   To: 
  amibroker@xxxxxxxxxxxxxxx  >     > 
  >   Sent: Saturday, December 11, 2004 7:53 
  AM >     > >   Subject: Re: 
  [amibroker] PositionSize / Capital >     > > 
   >     > >  >     
  > >   Ed,  >     > > 
   >     > >   I, too, have confirmed 
  many times with backtesting what  you  >     > 
  report, viz,, that positionsize = -x gives better performance 
   >     results  >     > 
  than using volatility-based MM positionsizing. The non-MM  code I've 
   >     > used in the past 
  is: >     > >  >     
  > >   posqty = Optimize("posqty",5,2,10,1); // no. of stocks 
   active  >     at 
   >     > any given 
  time >     > >   PositionSize = 
  -100/posqty; //equal equity model >     > > 
   >     > >   I think I know what the 
  problem is, but I have not as yet  >     figured 
   >     > out how to solve the problem with AFL. 
  If you use the MM- based  >     > positionsize 
  statement as we have discussed (equal volatility 
   >     model),  >     > 
  i.e., PositionSize = -1 * C/StopAmt, and examine the  tradelist, you 
   >     > will likely discover that, often, not 
  all 5 stocks are active  all  >     the 
   >     > time. In other words, either you have 
  idle capital earning  nothing  >     or 
   >     > you have fewer active stocks than you 
  want. Why is this?  Because  >     some 
   >     > stocks, which might not be as volatilie 
  as others, use up  more of  >     > your 
  capital to initiate a position than a more volatile  stock. 
   >     > Consequently, your capital is used up 
  before you have a  chance to  >     > enter 
  into your 4th or 5th stock. Instead of having 5 open 
   >     positions,  >     
  > you might only have 3 because of this. Checking positionsize 
   >     > shrinking doesn't help because you'll 
  discover you might have  tiny  >     > 
  positions in your 5th stock. The fewer stocks you have, the  less 
   >     > diversified you are, and therefore the 
  more risky your  portfolio.  >     The 
   >     > more risk, the higher the DDs. This 
  problem cannot happen  with the  >     > equal 
  equity model since all positions are equal in size, by 
   >     > definition. 
   >     > >  >     
  > >   One possible way around this might be to increase your 
   margin  >     so 
   >     > that equity is expanded enough to allow 
  full funding of all  >     > positions. But, 
  again, this also increases your risk. Another  way 
   >     > might be dynamically setting your risk 
  to fit the volatility  of  >     each 
   >     > stock individually (the lower the 
  volatility, the lower the  risk  >     and 
   >     > therefore, the smaller the positionsize 
  for that stock).  However,  >     > this 
  changes your model so that you no longer have equal 
   >     > volatility/equal risk (getting closer to 
  the equal equity  model).  >     So, 
   >     > the problem remains unsolved for the 
  moment. I have not had  time to  >     > 
  devote to cracking this problem yet, but some day I hope to  do 
   >     this.  >     > 
  If you have any ideas, I'm all ears.  >     > 
  >  >     > >   Al 
  Venosa >     > > 
   >     > >  >     
  > >   ed nl wrote:  >     > 
  >     Thanks for your effort Al. It is very 
  clear, >     > > 
   >     > >     In one of 
  my earlier posts I posted  >     > > 
   >     > >     // money 
  management block >     > 
  >     stopLoss = 
  Ref(bbb*ATR(20),-1); >     > 
  >     // trade risk >     
  > >     tr = IIf(Buy,(stopLoss / BuyPrice),stopLoss 
  /  (ShortPrice +  >     > 
  stopLoss)); >     > >     
  // renormalisation coefficient >     > 
  >     rc = 0.02 / tr; >     
  > >     // 
  positionsize >     > >     
  PositionSize = rc * -100 >     > > 
   >     > >  >     
  > >     it actually gives the same result as 
  your: >     > >     
  PositionSize = -2.0 * IIf(Buy,BuyPrice,ShortPrice) /  stopLoss 
   >     > >     except for 
  short positions. Exact the same it would be  if I 
   >     > use: tr = IIf(Buy,(stopLoss / 
  BuyPrice),stopLoss /  (ShortPrice)); >     > 
  >  >     > >     
  Unfortunatelly I do not get better results this way.  Using 
   >     just  >     > a 
  simple PositionSize = -10 still gives somewhat better 
   results. >     > > 
   >     > >  >     
  > >  >     > >     
  rgds, Ed >     > > 
   >     > >  >     
  > >       ----- Original Message ----- 
   >     > >       
  From: Al Venosa  >     > 
  >       To: amibroker@xxxxxxxxxxxxxxx 
   >     > >       
  Sent: Saturday, December 11, 2004 4:19 AM >     > 
  >       Subject: Re: [amibroker] PositionSize 
  / Capital >     > > 
   >     > >  >     
  > >       ed nl 
  wrote: >     > > 
   >     > 
  >         
  Al, >     > >  >     
  > >         but how do you 
  implement the risk factor now? >     > > 
   >     > 
  >         
  ed >     > 
  >       Ed: >     
  > >  >     > 
  >       Let us suppose you have established 
  your risk as 1%  (i.e.,  >     > the maximum 
  you are willing to lose on a trade). Let us also 
   >     suppose  >     > 
  your initial equity is $100,000. So, if the stock you buy (or 
   >     short)  >     > 
  goes down by the amount based on your system, you lose only  $1000, 
   >     > keeping you in the game. Now, let us say 
  you defined your  >     
  volatillty- >     > based stop in terms of 
  2*ATR(20), which you incorrectly  assigned to 
   >     > the variable TrailStopAmount. I say 
  'incorrectly' because the  >     > TrailStop in 
  AB was designed to mimic the Chandelier exit,  which is 
   >     > basically a profit target type of stock 
  (it hangs down like a  >     > chandelier from 
  the highest high since the trade was  initiated, if 
   >     > long). I don't think you want the 
  TrailStop to be your money  >     > management 
  stop. Rather, the MM stop is the max stoploss,  defined 
   >     as: >     > > 
   >     > >       
  StopAmt = 2*ATR(20); >     > 
  >       ApplyStop(0,2,StopAmt,1); 
   >     > >  >     
  > >       So, if your stock declines by 
  2*ATR(20) from your  entry,  >     you 
   >     > exit with a 1% loss. Let's take an 
  example. Stock A is  selling for  >     > 
  $40/share. It's ATR(20) is $1/shr or 2.5% of 40. Your stop  amount 
   >     is  >     > 
  2*ATR(20), which is $2/shr. How much stock do you buy? You  simply 
   >     > divide your risk, $1000, by 2*1, which 
  is 500 shares. This  amounts  >     to 
   >     > an investment of $40/shr * 500 shrs or 
  $20,000. All of this  can be  >     > coded in 
  one simple line of AFL plus the 2 lines above  defining the 
   >     > MM 
  stoploss: >     > > 
   >     > >       
  PositionSize = -1 * BuyPrice/StopAmt; >     > 
  >  >     > 
  >       where -1 is 1% of current equity 
  (0.01 * 100,000 or  $1000),  >     > BuyPrice 
  = $40/shr, and StopAmt is 2. Keep in mind that a  negative 
   >     > sign means 1% of CURRENT equity, which 
  means compounded  equity, not  >     > just a 
  constant initial equity of $100,000. If you carry  through 
   >     the  >     > 
  above math with your renormalization coefficient notation,  you wind 
   >     > up with the exact same answer. 
   >     > >  >     
  > >       One more thing. When you place 
  your order, assuming  you are  >     > trading 
  with EOD data, you do not know what the buyprice is  until 
   >     you  >     > buy 
  the stock, which is the next day. So, what most traders  do is 
   >     > base their positionsize on the closing 
  price of the night  before  >     the 
   >     > entry. Therefore, to place an order in 
  the evening to be  filled in  >     > the 
  morning at the open, your positionsize statement would  actually 
   >     > be: >     > 
  >  >     > 
  >       PositionSize = -1 * 
  C/StopAmt; >     > > 
   >     > >       
  where C is the closing price on the night before you  buy. 
   >     So,  >     > if 
  you use the code SetTradeDelays(1,1,1,1), then the above  formula 
   >     > is OK. However, if you use 
  SetTradeDelays(0,0,0,0), then you  have  >     to 
   >     > ref the C back a day. 
   >     > >  >     
  > >       This is probably more 
  information than you were  asking  >     about, 
   >     > but I hope it 
  helps. >     > > 
   >     > >       
  Cheers, >     > > 
   >     > >       
  Al Venosa >     > > 
   >     > >  >     
  > >  >     > > 
   >     > >   Check AmiBroker web 
  page at: >     > >   http://www.amibroker.com/ >     
  > >  >     > >   Check group 
  FAQ at:  >     > http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
   >     > >  >     
  > >  >     > 
  >         Yahoo! Groups Sponsor 
   >     > 
  >               
  ADVERTISEMENT >     > 
  >              
   >     > 
  >        
   >     > 
  >        
   >     > >  >     
  > >  >     > > 
  ------------------------------------------------------------ ------ >     
  -- >     > 
  ---------- >     > >   Yahoo! Groups 
  Links >     > > 
   >     > >     a.. To 
  visit your group on the web, go to: >     > 
  >     http://groups.yahoo.com/group/amibroker/ >     
  > >        >     
  > >     b.. To unsubscribe from this group, send an 
  email to: >     > >     
  amibroker-unsubscribe@xxxxxxxxxxxxxxx >     > 
  >        >     > 
  >     c.. Your use of Yahoo! Groups is subject to the 
  Yahoo!  Terms  >     of 
   >     > Service. >  >  > 
   >  >  >     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 Sponsor 
   >               
  ADVERTISEMENT >              
   >        
   >         >  >  > 
  -------------------------------------------------------------------- ---------- >   
  Yahoo! Groups Links >  >     a.. To visit your 
  group on the web, go to: >     http://groups.yahoo.com/group/amibroker/ >       
   >     b.. To unsubscribe from this group, send an 
  email to: >     
  amibroker-unsubscribe@xxxxxxxxxxxxxxx >       
   >     c.. Your use of Yahoo! Groups is subject to 
  the Yahoo! Terms of  Service.
 
 
 
 
  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 Sponsor | 
 
ADVERTISEMENT
 ![click here]()  |  
  | 
 
![]()  |  
 
 
 
Yahoo! Groups Links 
  |