Hi Ed,
I don't use MaxOpenPositions because
it pertains to open positions in multiple symbols at one time,
(Portfolio trading).
I can set it to 3 and still easily
open more than 3 contracts at a time in one symbol, like the old
backtester. And that's all I'm trying to do.
Just increase or decrease the number
of contracts to trade in just one symbol, depending on the current
equity.
Using:
Eq = Foreign("~~~EQUITY",
"C");
Does return the
correct equity for use in a backtest, but the backtest button has to be
pushed twice.
I think that in the end, unless I'm
missing something simple, I'll have to manually program separate code
to keep track of my equity.
-CS
-----
Original Message -----
Sent:
Thursday, May 28, 2009 3:02 AM
Subject:
Re: [amibroker] Using Equity to Compute Position Size
Hi Corey,
you can use equity but indeed you
need one level deeper inside the backtest code. What I do not
understand is why MaxPositions does not seem to work on a higher level
backtest. Will ask Marcin later.
I will maybe try to code using
Equity in the custom backtester later.
But on a higher level in the
backtester you need to use PositionSize for reasons Graham gave.
I use Equity on this higher level
though. For instance I have written code that takes a profit per day at
e.g. 500$, or per trade at e.g. 150$. What I do is that I let the code
first calculate the equity without these restrictions and then feed the
resulting equity into a procedure that takes the profits. So basicly
within 1 AFL code the equity curve is calculated twice.
But I do not see you can use that
for your question.
And yes if you use:
PositionSize = -10;
SetOption("MaxOpenPositions", 3);
RoundLotSize = 1;
MarginDeposit = 5000;
TickSize = 0.25;
PointValue = 50;
the equity curve should not be able
to explode because the MaxOpenPositions is set to 3. But I also see it
explode because it takes more than 3 positions as the equity increases.
This seems to be wrong. I will ask marcin or TJ.
regards, Ed
.