[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: Sell and Buy on different days



PureBytes Links

Trading Reference Links

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
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
> > >
> > >
> >
>

__._,_.___

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL SUPPORT from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
*********************

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html

*********************************




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___