| 
 PureBytes Links 
Trading Reference Links 
 | 
Ed and Daniel: 
 
I tried the code below but without the Min part, using an old system of
mine. However, I made the following changes: 
 
PosQty = 20; // very large ala TJ's suggestion 
SetOption("MaxOpenPositions",posqty); 
rsk = -1; // 1% risk  
PositionSize = Max(-20,rsk*C/StopLoss)); // where stoploss was
2*ATR(5). I was using a 1-day delay system, so I didn't need to ref the
Close back a day.  
 
Also, I made sure I set positionsize shrinking to ON and the trade size
to no more than 1% of volume.  
 
Examining the trade report. I observed I was fully invested from
beginning to end, and most if not all of the time, the volatility-based
positionsizing was used rather than the 5 equal equity positions. So,
TJ's idea worked like a charm. It allowed me to fully invest my
capital, albeit with more positions than I had comtemplated (there were
times when as many as 11 positions were put on at the same time!).  
 
Unfortunately, the overall results compared rather poorly to the equal
equity model, where the code was: 
 
PosQty = 5: 
SetOption("MaxOpenPositions", posqty); 
PositionSize = -100/posqty; 
 
I do not understand why the volatility-base positionsizing compares so
poorly to the equal equity positionsizing. The system tested was a very
short term system, whose average trade duration was only about 2-3
days. Perhaps in such a short time period, volatility doesn't enter
into the picture that much. If any of you guys have a longer system to
test the above on, let me know the results you get. Perhaps that's the
answer. Does volatility only play a role for longer term systems?  
 
Al Venosa 
 
ed nl wrote: 
  
  
  
  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
     
     
     
   
 
  
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 
 |   
 |