PureBytes Links
Trading Reference Links
|
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
ed nl wrote:
Al,
but how do you implement the risk
factor now?
ed
-----
Original Message -----
Sent:
Friday, December 10, 2004 5:32 PM
Subject:
Re: [amibroker] PositionSize / Capital
Use -1 without the Capital rather
than 0.01:
Positionsize = -1*BuyPrice/TrailStopAmount;
ed nl wrote:
hello,
I found this question has been asked before but I couldn't find the
answer.
If one tries to use moneymanagement techniques I find the following
example
in the manual:
TrailStopAmount = 2 * ATR( 20 );
Capital = 100000; /* IMPORTANT: Set it also in the Settings: Initial
Equity
*/
Risk = 0.01*Capital;
PositionSize = (Risk/TrailStopAmount)*BuyPrice;
ApplyStop( 2, 2, TrailStopAmount, 1 );
However, in this example the Capital will be constant throughout the
backtest. I need to use the Capital value of my portfolio as it
progresses
through time. What can I use?
thanks
rgds, Ed
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
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
|
|