[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

hi Brian,
 
yes I understood the Kelly principle. The rules of the game determine the outcome, when you win you gain 200% when you loose you loose 100%, your optimal fraction in the wager should be 25% of your account. It is a nice game to play with people who never heard of it,  makes you look real clever.  Doesn't Vince's optimal f use a prior history of trades to determine the optimal fraction?  Seems to me that if you have something that works you just need to make sure there is no possibility of being wiped out and hope the stockmarket is still there the next year (which I am starting to doubt).
 
regards, Ed
 
 
 
----- Original Message -----
From: brian_z111
Sent: Saturday, January 31, 2009 9:44 AM
Subject: [amibroker] Re: Sell and Buy on different days

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@xxxxxxxxxps.com, "Edward Pottasch" <empottasch@...>
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@xxxxxxxxxps.com
> 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@xxxxxxxxxps.com, "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@xxxxxxxxxps.com, "Mike" <sfclimbers@> wrote:
> > >
> > > --- In amibroker@xxxxxxxxxps.com, "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@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
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

__._,_.___

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

__,_._,___