> In any case it could be traded if you organise your funds in such a
>way that all symbols in your list can be held
simultaneously.
That isn't really practical and we can calculate very
accurate
predictions, subject to variance and non-stationarity, before we
risk
our money.
>there are a lot of additional problems that
arise like an uncomplete
>database during testing
You can't get
a good result out of a bad database.... just avoid
trades were you can't
get the data you need.
>Not sure if a random selection on an
extended list for testing
>purposes is reliable. Who knows in the
practice you will find that
>the signals that come early during the
trading session usually are
>loosers. This could be tested however
using intraday data,
Yes it is reliable, in fact it is the only way
that it can be done.
Returning to the example in my previous
post:
a b c X d e f g h i
a b c Y d e f g h i
a b c Z d e f g h
i
The XY & Z samples were produced by the same system (same rules)
as
the a -> i samples, so they are part of the same series and share
the
same profile (frequency distribution and
probabilities).
If you have a list of trades for an EOD system and
then want to find
out if the intraday time affects the result then you are
ranking your
daily signals using an intraday factor and you have to add at
least
one more trading rule to do that.
This is effectively a new
system and it will produce its own trade
series , with it's own
characteristics.
As always, if we do analyse the trade sample space, we
have to make
sure we are left with enought samples to provide a valid
sample.
NEW RULE == NEW SYSTEM == NEW AND UNIQUE TRADE
SERIES
--- In amibroker@xxxxxxxxxps.com,
"Edward Pottasch" <empottasch@...>
wrote:
>
> In
any case it could be traded if you organise your funds in such a
way that
all symbols in your list can be held simultaneously. EOD
systems are
tricky though since there are a lot of additional
problems that arise like
an uncomplete database during testing (ENRN,
WCOM etc missing), no shorts
available during trading. Not sure if a
random selection on an extended
list for testing purposes is
reliable. Who knows in the practice you will
find that the signals
that come early during the trading session usually
are loosers. This
could be tested however using intraday data,
>
> regards, Ed
>
>
> ----- Original Message -----
> From: Mike
> To: amibroker@xxxxxxxxxps.com
> Sent: Thursday, January 29, 2009 10:32 PM
> Subject:
[amibroker] Re: Sell and Buy on different days
>
>
> Ha
ha.
>
> Just goes to show how people can get tunnel vision
sometimes.
Since I
> do a lot of custom backtester code, I
immediately suggested
filtering
> at that level.
>
>
But, your suggestion of a random value for PositionScore directly
>
would be far easier and less prone to coding error.
>
>
Mike
>
> --- In amibroker@xxxxxxxxxps.com,
"Edward Pottasch" <empottasch@>
> wrote:
>
>
> > you are right on this Mike. Testing a system like this using
a
> random positionscore is a good indication if it can be made into
a
> system that can be used in the practice. Andy has an idea that
is
> tough to execute but not impossible in my opinion,
> >
> > regards, Ed
> >
> >
> >
>
>
> >
> > ----- Original Message -----
> >
From: Mike
> > To: amibroker@xxxxxxxxxps.com
> > Sent: Thursday, January 29, 2009 8:37 PM
> > Subject:
[amibroker] Re: Sell and Buy on different days
> >
> >
> > Andy,
> >
> > Use caution when backtesting
EOD strategies where there are
more
> > signals than there are
funds or positions to be filled;
> >
> > If your strategy
is to buy OCA, what logic are you putting in
> place to
> >
determine which symbol to buy when multiple symbols hit your
limit
> > order on the same bar?
> >
> > Since you are
using EOD data, you have no idea which symbol
would
> have
>
> hit the limit order first. You only know that x of y symbols
hit
> the
> > limit order on that day.
> >
> >
AmiBroker will just select the first in the list
(alphabetically?
>
). As
> > such, your backtest results will be heavily biased in
favor of
> that
> > ordering and will not reflect live
trading results.
> >
> > Generally, PositionScore can be
used to influence ordering.
But,
> an
> > OCA approach by
definition does not follow PositionScore.
> >
> > So, you
might want to modify your custom backtester code to
> randomly
>
> select from the available signals and set the remaining ones to
>
> PosSize 0 in order to override the default prioritization. Then
>
run
> > your backtest many times and take the average of the results
as
a
> best
> > guess estimate (i.e. Monte Carlo
Permutations)
> >
> > Mike
> >
> > ---
In amibroker@xxxxxxxxxps.com,
Andrew Senft <senft@> wrote:
> > >
> > > Hey
Ed,
> > >
> > > Thank you so much for the code on the
Amibroker Yahoo group
> board!
> > It
> > >
seems to be working from what I've seen so far. I'm doing an
> >
> optimization on that particular code (your first code) right
>
now.
> > >
> > > The second code (the one from your
email) didn't work. That
is,
> > there
> > > were
sales of one stock and buy of another stock on the same
> day.
>
> Not
> > > sure what your code was doing but it gave a lot
bigger
profits
> using
> > the
> > >
backtester. Could you comment on this please?
> > >
> >
> Mind you that this is my first attempt to writing code for
any
> stock
> > > type software. I'm still using the 30 day
free trial of the
> > Amibroker
> > > software but I
think that I'm getting closer as I'm chugging
> along.
> >
>
> > > My agenda is to use this on a basket of ETF's. Perhaps
10 to
20
> > or
> > > so. Not sure how many I need
since the 30 day trail backtests
up
> > to a
> > >
basket of 5 stocks. My idea is to place the possible stock
> trades
> > > using the whole basket of ETF stocks at night for the next
> trading
> > > session. I have an IB account so I figure
I could use an OCA
> limit
> > > order. Basically whenever
a trade gets hit first (meets the
> limit
> > price
>
> > level), it trades. The other possible trades all get canceled
> right
> > > away. So one trade actually goes through for
the day.
> > >
> > > BTW, I like ETF's because the
drawdowns are not as scary....
> okay,
> > > usually not
as scary. Ha! I've been backtesting with:
> > >
> > >
QQQQ, DIA, SPY, MDY, IWM
> > >
> > > Thank you
again!
> > >
> > > Andy
> > >
>
> > Edward Pottasch wrote:
> > > >
> > > >
Andy,
> > > >
> > > > I have sent an
alternative solution to your private Email.
Let
> me
> >
know
> > > > if you received it.
> > > >
> > > > Ed
> > > >
> > > >
> > > >
> > > > ----- Original Message
-----
> > > > *From:* Andy <mailto:senft@>
>
> > > *To:* amibroker@xxxxxxxxxps.com
> > <mailto:amibroker@xxxxxxxxxps.com>
>
> > > *Sent:* Thursday, January 29, 2009 12:40 PM
> > >
> *Subject:* [amibroker] Re: Sell and Buy on different days
> >
> >
> > > > This is got to be a very simple task but
unfortunately
> > AmiBroker told
> > > > me that I
would have to write Backtester Interface code for
> > this.
I'm
> > > > sure this has been done a million times. Anyone
have sample
> > code?
> > > > I'm using EOD data to
trade one stock at a time from a
basket
> > of
> > >
> stocks. The problem is that a selling of a stock can occur
on
> > the
> > > > same day as a buy of *another* stock.
Of course the problem
is
> > that
> > > > the
sell trade can occur after the buy trade.
> > > >
> >
> > --- In amibroker@xxxxxxxxxps.com
>
> > > <mailto:amibroker%40yahoogroups.com>, "Andy"
<senft@> wrote:
> > > > >
> > > > >
How do I fix the below code so it doesn't buy a different
> > stock
on a
> > > > > sell day?
> > > > >
>
> > > >
--------------------------------------------------------
>
> > > > // Backtester Options
> > > > >
SetOption("MaxOpenPositions", 1 );
> > > > >
SetOption("AllowSameBarExit", False);
> > > >
>
> > > > > // Optimization numbers
> > >
> > BuyPeriod = Optimize("BuyPeriod",16,10,20,2);
> >
> > > BuyFactor =
Optimize("BuyFactor",1.2,0.5,1.5,.1);
> > > > >
SellPeriod = Optimize("SellPeriod",20,10,20,2);
> > >
> > SellFactor =
Optimize("SellFactor",0.8,0.5,1.5,.1);
> > > >
>
> > > > > // ATR formulas
> > > > >
TodaysBuyTarget = High - BuyFactor * ATR(BuyPeriod);
> > >
> > YesterdaysBuyTarget = Ref(High,-1) - BuyFactor *
> > >
> Ref(ATR(BuyPeriod),-1);
> > > > >
YesterdaysSellTarget = Ref(Low,-1) + SellFactor *
> > > >
Ref(ATR(SellPeriod),-1);
> > > > >
> > >
> > // Buy/Sell signals and prices
> > > > > Buy =
YesterdaysBuyTarget > Low;
> > > > > BuyPrice =
IIf(YesterdaysBuyTarget > Open, Open,
> > > >
YesterdaysBuyTarget);
> > > > > Sell =
YesterdaysSellTarget < High;
> > > > > SellPrice =
IIf(YesterdaysSellTarget < Open, Open,
> > > >
YesterdaysSellTarget);
> > > > > Buy =
ExRem(Buy,Sell);
> > > > > Sell =
ExRem(Sell,Buy);
> > > > >
> > >
>
> > > >
> > > >
----------------------------------------------------------
>
> ------
> > > >
> > > >
> > >
> No virus found in this incoming message.
> > > > Checked
by AVG - http://www.avg.com
>
> > > Version: 8.0.176 / Virus Database: 270.10.15/1921 - Release
> Date:
> > 1/28/2009 6:37 AM
> > > >
>
> > >
> > >
> >
>