[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

Well, I wasn't at the front of the queue when the maths processors 
were being installed.

I mainly work on understanding the principles, with a lot of help 
from Excel, and then apply the simplified principles in my own way.

I do a lot of ad-libbing because no one can provide us with a 
complete or persoanlised answer.

Looks like you are pretty happy with what you already have at your 
fingertips.

For academic interest only:

Use a biased coin, that pays more on heads than tails.

If you bet on the toss, it seems obvious that you will win, over 
time, if you bet on the outcome. 

However, ff you flip the coin and bet all of your stake on heads and 
it comes up tails you have lost all o n the firs bet, so clearly the 
amount we bet each toss affects the end result.

Kelly is the maths used to calc the optimum stake for coin tossing, 
where the amount one or lost is always the same.

It is no use for trading.

OptimalF calcs return the amount to stake when the wins and losses 
are not all the same.

It is actually the staking system that gets you back above the water 
line in the shortest possible time.

On one hand it definitely shows us where our stake high enough 
because there is no further gain to be had from increasing it.

On the other hand, trading at optF usually means you will suffer 
large drawdowns and this has put a lot of people off it.

For a more comfortable drawdown a lof of traders operate at less that 
optimum.

Note that the maths isn't hard ... it's accepting the truth of it and 
then actually doing it that is the hard part.

>Played with clever ways to adapt the position size but never seen it 
>work for me.  Complex portfolio type systems I do not like to trade 
>anymore

It is easier than academia makes it look (Fund Managers have an 
entirely different background and brief to myself).

I hope I have the time in the future to post some easy methods.

You are probably like me ... better of practising than theorising.

>the idea Andy posted is very interesting and works remarkebly well 
>for a long only system. Seems this can be made into a stable 
>25%/year return system without using compounding. Long only systems 
>are far less complex to execute in the practice.

That's very generous of you and Andy to discuss it publicly.

I'll have another look at it.

Cheers,

brian.

--- In amibroker@xxxxxxxxxxxxxxx, "Edward Pottasch" <empottasch@xxx> 
wrote:
>
> hi Brain,
> 
> Have to admit I am not smart enough for stuff Ralph Vince is 
talking about. Optimal f etc. never really understood how to use it 
(as if I understood it at all). The Kelly principle is as far as I 
got but how to use it in trading?  Money management which I used when 
I was trading a portfolio type EOD system was simply put 3% of the 
account in each trade and no margin. Played with clever ways to adapt 
the position size but never seen it work for me.  Complex portfolio 
type systems I do not like to trade anymore, although the idea Andy 
posted is very interesting and works remarkebly well for a long only 
system. Seems this can be made into a stable 25%/year return system 
without using compounding. Long only systems are far less complex to 
execute in the practice.
> 
> Would like to have a look in the kitchen how the real quants 
operate, like Simons of the Renaissance Hedge fund. The guy is a 
mathematician but I believe these days these guys make money by 
simple making the market. If you make the market you know where it is 
heading :)  
> 
> regards, Ed
> 
> 
> 
> 
> 
>   ----- Original Message ----- 
>   From: brian_z111 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Saturday, January 31, 2009 5:05 AM
>   Subject: [amibroker] Re: Sell and Buy on different days
> 
> 
>   Mike and Ed,
> 
>   Thanks for your feedback.
> 
>   You guys sure got me thinking.
> 
>   Thanks for your perserverance also .... I realise that my tenses 
are 
>   wobbling and the logic fades in and out a little ... my work 
contains 
>   more errors than it would if I wrote the book formally.
> 
>   A little more .. 
> 
>   ....referencing my previous matrix example.
> 
>   My comments so far have assumed that the trade samples are 
>   independent.
> 
>   If we had 100 Eq at the end of day 3 then the outcome, after day 
>   four, would equal the mean of the GF's for each simultaneous 
trade 
>   e.g.
> 
>   ... going back to the future ... on day 4 we take option 1 ... 
record 
>   the result and then go back and take option 2 etc, being careful 
to 
>   do everything exactly the same except for the X,Y,Z selection ... 
>   then compare:
> 
>   day 4
>   eq 100
> 
>   GrowthFactor, Eq 
> 
>   X 1.05, 100 -> 105
>   Y 0.98, 100 -> 98 
>   X 1.02, 100 -> 102
> 
>   ave GF == 1.016repeat, ave eq == 101.6 repeat
> 
>   OR nominally, in the time warp, we had 300 and now have 305 
> 
>   and 305/300 == GF 1.016repeat for the period
> 
>   If they are independent trades then we throw them in the bucket 
with 
>   the a -> i samples.
> 
>   a -> i and X,Y,Z are just time markers, like buttons on a game 
board, 
>   and we have to turn them over to find their trade value.
> 
>   If we do that a massive number of times, tending to oo, the 
outcome, 
>   for each box in the matrix, will tend to the mean value of all 
>   trades ... even on day four, which will just approach the mean 
more 
>   quickly than the other time slots.
> 
>   (if we want to imagine this we can picture the 10 box matrix 
>   repeating itself end to end infinitely and the trades falling 
into 
>   the empty boxes sequentially ... since time is constant there is 
no 
>   reason not to do this ... it is the values in the boxes that have 
>   variance and are non-stationary and not the sample space).
> 
>   The proof is that after massive sampling, if we transpose the 
indexed 
>   array back and stack the 10 box submatrices on top of each other, 
and 
>   then average the columns + calc the StDev, they would all be the 
mean 
>   trade +- variance
> 
>   Note that since the trade samples do not necessarily have a 
normal 
>   dist we need to do some random sampling first, and then apply a 
>   distribution to the newly selected sample space, which produces a 
>   kind of psuedo mean distribution for the trade sample set (MCS 
just 
>   does this for us automatically so we tend not to notice that step 
>   whereas in BS I do that first).
> 
>   Considering correlation of simultaneous trades:
> 
>   - using EOD as the simplest example (in any case trades must be 
on 
>   the same bar or they would not be simultaneous)
>   - trading long only (a bull system)
>   - it might happen that on a market bull day you get more signals 
and 
>   more wins
> 
>   day. 1, 2, 3, 4
>   market. bear, bear, bear, bull
>   P or L. loss, loss, loss, 10 trades all win
> 
>   So we are up 10/3 wins/losses but the market itself is 1/3
> 
>   Looking at the staking if you bet fixed fraction:
> 
>   - losing some eq initially,
> 
>   bet. 110,105,100 then 100/10 is bet on each trade and the outcome 
is 
>   the ave result of the 10 trades.... as an aside this needs to be 
ave 
>   == 10% to get us back to the start eq of 110.
> 
>   Effectively we have achieved the result of the ave trade i.e. it 
is 
>   as if we only made one trade in real terms.
> 
>   So, if correlation , between simultaneous trades, exists then we 
>   could count it as one trade and only throw one win in the freq 
dist 
>   bin and give it a value of the ave trade for the bar.
> 
>   On the other hand, the reverse could hold i.e. on market bear 
days we 
>   could get 10 signals that are all losses to our bull system, and 
thus 
>   happily balance the books.
> 
>   We also have to ask ourselves, "Why not just trade the market and 
not 
>   worry about correlation"?
> 
>   It is also possible that horizontal correlation (dependency) can 
>   occur in the trade matrix ... RalphVince gives the calcs to 
handle 
>   that situation in his books... certainly on google as well.
> 
>   BTW I agree with you that we need to think about the implications 
of 
>   the BT alphabetically selecting symbols to trade and being bound 
by 
>   eq limits.
> 
>   --- In amibroker@xxxxxxxxxxxxxxx, "brian_z111" <brian_z111@> 
wrote:
>   >
>   > O.K Mike ... you live and learn :-)
>   > 
>   > Possibly correlation, or NOT, of simultaneous trades to the 
market, 
>   > or sector, is a related subject ... didn't discuss that detail 
in 
>   > relation to my X,Y & Z example .. that is where trade sample 
space 
>   > anlaysis can provide the answer.
>   > 
>   > 
>   > 
>   > --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@> wrote:
>   > >
>   > > --- In amibroker@xxxxxxxxxxxxxxx, "brian_z111" <brian_z111@> 
>   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.
>   > > > 
>   > > > That isn't really practical and we can calculate very 
accurate 
>   > > > predictions, subject to variance and non-stationarity, 
before 
>   we 
>   > > risk 
>   > > > our money.
>   > > 
>   > > Why impractical? I have been doing exactly that, profitably, 
for 
>   > just 
>   > > under 2 years. There is much room for experimentation in 
exactly 
>   > how 
>   > > the funds get distributed among the signals. But, even a 
simple 
>   > equal 
>   > > division of equity between all signals (up to a fixed maximum 
>   > > percentage of equity per trade in the event that there are 
few 
>   > > signals) can prove profitable when applied to a strategy. 
>   > > 
>   > > Mike
>   > > 
>   > > 
>   > > > >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/