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
.