PureBytes Links
Trading Reference Links
|
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.
------------------------ Yahoo! Groups Sponsor --------------------~-->
$4.98 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/Q7_YsB/neXJAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~->
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
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|