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

[amibroker] Re: Sell and Buy on different days



PureBytes Links

Trading Reference Links

I agree. Premium Data has it, at least for EOD data.

Mike

--- In amibroker@xxxxxxxxxxxxxxx, "Edward Pottasch" <empottasch@xxx> 
wrote:
>
> hi,
> 
> with an incomplete database or dataset I meant that many symbols 
have disappeared over the years through bankruptcies or takeovers. 
Best to get these in your database before doing portfolio backtests. 
Only a few providers have these symbols I believe. QP doesn't provide 
it.
> 
> Ed
> 
> 
>   ----- Original Message ----- 
>   From: brian_z111 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Friday, January 30, 2009 10:04 AM
>   Subject: [amibroker] Re: Sell and Buy on different days
> 
> 
>   > 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@xxxxxxxxxxxxxxx, "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@xxxxxxxxxxxxxxx 
>   > 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@xxxxxxxxxxxxxxx, "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@xxxxxxxxxxxxxxx 
>   > > 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@xxxxxxxxxxxxxxx, 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@xxxxxxxxxxxxxxx 
>   > > <mailto:amibroker@xxxxxxxxxxxxxxx>
>   > > > > *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@xxxxxxxxxxxxxxx
>   > > > > <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

*********************************
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/