PureBytes Links
Trading Reference Links
|
To be chrystal clear about my hypothesis:
We are trying to design a system that produces the same set of
trades, in the future, as it has in the past i.e trades and not
combinations of trades.
If a solid gold coin, minted by the US treasury, with a head and a
tail clearly stamped on each side, and only two values +1 or -1 can't
reproduce two equity curves that look the same, after N tosses, how
can we expect a trading system to do that when it has a range of
possible values?
AND it doesn't get any better as N increases.
Put your time and effort into maximising the STABILITY
(predictability, boundness) of the trade set 'with an edge' THEN use
MM to optimise the equity outcome the system produces (optimise ==
your definition e.g. max return, min risk or whatever).
--- In amibroker@xxxxxxxxxxxxxxx, "brian_z111" <brian_z111@xxx> wrote:
>
> Howard,
>
> Thanks for your post.
>
> A very well written article.
>
> Some contrary comment (first referencing some of your points and
> then, later, some comments of my own):
>
>
> > By trying many
> > combinations of logic and parameter values, we will eventually
find
> >a system that is profitable for the date range analyzed.
>
> You are assuming that all successful long term traders arrived at
> their system(s) by using this approach ... perhaps there are
systems
> out there that have no optimiseable parameters and only one
> underlying logic.
>
> If so they are likely be based on primal market behaviour and
> therefore persistent across markets and time i.e they would have to
> be systems based on market characteristics that are relatively
> stationary.
>
>
>
> > testing the
> > profitability of a trading system that was developed using recent
> >data
> > on older data is guaranteed to over-estimate the profitability of
> the
> > trading system.
>
> You know that in science (philosophy/logic) it only takes one
> refutation to dethrone the current ruling hypothesis ...
>
> if a long system, developed on the last 12 months of data (when the
> market was experiencing a bear riot) is then tested OOS on the
prior
> years data it will outperform the in sample tests (OOS would be
> conducted on bull market data).
>
>
> > There is very little reason to expect that future behavior and
> > profitability of well known trading systems will be the same as
past
> > behavior.
>
> Do we have any empirical evidence of this?
>
> First we would have to have an agreed definition of 'well known',
> make a list of the systems, and then perform massive testing.
>
> To scrupulously prevent any bias creeping testing would have to be
> conducted live, and not on historical data.
>
>
> We only know that they were successful 'in the past' by IS testing,
> or by claim.
>
> Do we have any, or many, certified performance records provided by
> traders who claim to have had success with those 'well known'
systems.
>
> > Statistics gathered from in-sample results have
> > no relationship to statistics that will be gathered from trading.
>
> Not, so.
>
> They have every bearing on the stats gathered in trading because
only
> systems with good IS performance make it to the OS, or live
trading,
> phase.
>
> OOS testing is only proceeded with because the analyst has every
> expectation, or hope, that the good IS stats will be reproduced OOS.
>
> In fact it is the relative performance between the IS and OOS stats
> the encourages us to proceed or abort.
>
>
>
> Re trading the edge erodes the edge:
>
> It is an assumption that all players are trading systems ... many
are
> not, in fact the vast majority are not.... those who aren't control
> vastly greater sums of money than those who do.
>
> It is an assumption that all wins erode the system ... they could
be
> just lucky wins that the trader can't exploit long term, or
> successful wins that the trader doesn't sustain e.g they might not
> have the capital, use the correct staking or maintain self-
discipline
> in the future.
>
> Only a very small percentage of traders are successful, and hence
> trading a successful system ... every one else who is trading is
just
> making noise.
>
> There are millions of system permutations, instruments, markets,
> staking systems etc ..... how many successful traders would it take
> to exahaust all of the successful permutations?
>
> > The follow-on point, which relates to Monte Carlo analysis, is
that
> > rearranging the in-sample trades gives no insight into the future
> > characteristics of the system. Yes, you can see the effect of
taking
> > the trades in different orders. But why bother? They are still
> > in-sample results and still have no value.
>
> If you are engineering an F1 racing car there is only track
> testing/simulation (99.9 of the time) and racing performance (1% of
> the time).
>
> The more information you gather off the track the more likely you
are
> to perform on the track OR know what to adjust and when to adjust
it
> if performance doesn't meet expectations.
>
> Do you know of any F1 teams that don't test/simulate?
>
> Do you know of any F1 teams that only test/simulate one, or
limited,
> metrics?
>
> What is testing if not 'massive examination of what-if scenarios'?
>
>
>
> Re MonteCarlo and stationarity
>
> I haven't studied the subject in depth.
>
> Mainly it is has been used outside of trading and in different ways
> to the ways that traders use it .... possibly it would be best to
> limit trading discussion to 'trading simulation' and drop the MC
part
> of the name.
>
> I have only found one book devoted to the subject and I regret
buying
> it .... 'MCS and System Trading' by Volker Butzlaff.
>
> I have also test driven TradeSim and MSA.
>
> Referencing their trading apps.
>
> TS arranges the trades, as a time series, and randomly walks
through
> all permutations to simulate 'live trading'..... it is an MM test,
of
> some kind, because equity is allocated prior to the walk through.
>
> AB's backtester, in default mode, does this once.
>
> I assume other methods could be used ... as per my pervious XYZ
> example:
>
> - abcXdefghi with simultaneous trades on day 4,
> - we can only achieve a finite set of permutations,
> - the outcome of massive sampling will tend to the mean +- variance,
> - we can simulate the eq outcomes using random sampling of uniform
> size, ave the result per random series and then freq dist the means
> (Central Limit Theoreom predicts a pseudo norm dist).
> > 30 selections per series * ? series will achieve an approx of
> possible eq outcomes (I'm not sure if distrubtions obey the laws of
> sample error ... I don't think they do).
>
> TradeSims real life simulation assumes stationarity (the balls in
the
> bin, and their values will remain constant into the future).
>
> It also assumes that they will be selected from the bin in the same
> order, or frequency to be absolutely correct (the order doesn't
> change anything only the frequency).... to be precise about it,
their
> model assumes that if you have picked the worst historical loss out
> of the bin 2/1000 trades that you will not only experience the same
%
> as the worst loss in the future but that it will also only occur
> 2/1000 times.
>
> MSA puts all of the balls in the bin and selects them in a way that
> allows new combinations (frequencies) until all possible
frequencies
> are exhausted i.e. they assume stationarity only in values but not
> frequency of dist (they assume dist is a probability statement and
> not a constant or series of constants).... to be precise about it
> they assume that if it can happen it will.
>
> So, stationarity is the issue.
>
> So many people are confusing variance with non-stationarity ....
they
> are being fooled by randomness e.g.
>
> we know that the trial records of fair coin tosses are stationary
AND
> they have a surprising range of outcomes (variance) ... this is
very
> easy to see if simulated and expressed as equity outcomes.
>
> Therefore, in trading, we can, at the least expect a tremendous
> amount of variance ... no less than what can be expected from a
coin
> toss experiment ... this variance can be estimated using several
> methods, simulation being one easy, push the computer button and
look
> at the graph method.
>
> So, the value of the simulation is in training the mind to accept
> variance and mentally prepare for the worst case losses.
>
> However, it doesn't matter how we design our systems we can not do
> anything about stopping non-stationarity.
>
> Our system will get wiped out in OOS if it is not robust OR if the
> market changes.
>
> If our system is robust it will still get wiped out if the market
> changes.
>
> However, IMO, non-stationarity is not, or need not be, as pervasive
> in trading as we think.
>
> As I have said in the past, and already in this post ... many
traders
> are slayed by the innocuous looking Black Swan, because of
ignorance
> about its behaviours.
>
> Also, we are very lucky, in trading, to be able to have some
control
> over our dataset i.e. our sample space is bounded by our stops and
> other inherent factors in the design.
>
> Example:
>
> If we have a stop in place then we are reasonably unlikely to
> experience losses beyond the stop + commission + slippage .... when
a
> stop failure does occur it is very infrequent and not necessarily
> career destroying.
>
> When we have a profit stop in place we can expect to at least get
the
> stop OR BETTER.
>
> We can also, in some circumstances, buy a guaranteed stop loss.
>
>
>
> In summary:
>
> Because, as traders, we are statistically lucky, we can choose, to
> some extent, which marbles to put in the bin.
>
> We can absolutely limit the worst case, ensure we get at least the
> best case and then take everything in between that comes along.
>
> Since the boundaries are limited, the range of possible values on
the
> balls is finite and will always be normally distributed, when
> expressed as possible mean P & L (central limit theoreom)..... the
> staging post on the trail towards possible equity outcomes.
>
> I think under those circumstances that the balls in the bucket,
> collected over a long sample, are a pretty fair representation of
> what we can expect in the future.
>
> If they are not then we only have ourselves to blame for our poor
> system design.
>
> Nothing anyone can do, can put an end to stockmarket non-
stationarity
> but the challenge for the trader is to find ways to either absorb
it
> or anticipate it.
>
>
> One important point was absent from your post.
>
> Kelly and Vince et al have proved conclusively that staking
directly
> and remarkably affects outcomes.
>
> Based on that fact I can't understand why you, and many other
> commentators, continue to draw inferences from backtests that
include
> a limited range of portfolio allocations ... either don't involve
eq
> at all OR test across all possible eq allocations.
>
> (if you do opt for the latter choice wouldn't it be smarter to do
> that using the short mathematical solution rather than the long
> massive optimisation approach?).
>
>
>
> The babblers epilogue:
>
> I guess it is appropriate that an informal book should have an
> informal ending!
>
> "Always look on the bright side of life" ...
>
> ... from the life of Brian :-)
>
>
>
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Howard Bandy" <howardbandy@>
> wrote:
> >
> > Greetings all --
> >
> > The posting was originally made by me to Aussie Stock Forums on
> > February 2, 2009. But in light of recent discussions, I'll cross
> post
> > it here.
> >
> > Some of my thoughts on using Monte Carlo techniques with trading
> systems.
> >
> > First, some background.
> >
> > Monte Carlo analysis is the application of repeated random
sampling
> > done in order to learn the characteristics of the process being
> studied.
> >
> > Monte Carlo analysis is particularly useful when closed form
> solutions
> > to the process are not available, or are too expensive to carry
out.
> > Even in cases when a formula or algorithm can supply the
information
> > desired, using Monte Carlo analysis can often be used.
> >
> > Here is an example of Monte Carlo analysis. Assume that a student
is
> > unaware of the formula that relates the area of a circle to its
> > diameter. A Monte Carlo solution is to conceptually draw a square
> with
> > sides each one unit in length on a graph, with the origin at the
> lower
> > left corner. The horizontal side goes from 0.0 to 1.0 along the x-
> axis
> > and the vertical side goes from 0.0 to 1.0 along the y-axis. Draw
a
> > circle with a diameter of one unit inside the square. The center
of
> > the circle will be at coordinates 0.5, 0.5. The Monte Carlo
process
> to
> > compute the area of the circle is to generate many random points
> > inside the square (each point a pair of number with the values of
> the
> > x-coordinate and y-coordinate being drawn from a uniform
> distribution
> > between 0.0 and 0.999999), then count the number of those points
> that
> > are also inside the circle. The ratio between the number of points
> > inside the circle to the number of points drawn gives an estimate
of
> > the constant pi. Running this experiment several times, each using
> > many random points, allows application of statistical analysis
> > techniques to estimate the value of pi to within some probable
> > uncertainty. The process being studied in that example is
> stationary.
> > The relationship between the area of the circle and the area of
the
> > square is always the same.
> >
> > When we are developing trading systems, the ultimate question we
are
> > most often asking is "What is the future performance of this
trading
> > system?" Recall that the measure of goodness of a trading system
is
> > your own personal (or corporate) choice. Some people want highest
> > compounded annual return with little regard for drawdown. Others
> value
> > systems that have low drawdown, or infrequent trading, or whatever
> > else may be important. But, in all cases, the goal is to have the
> > trading system be profitable. Assume that many of us are trading a
> > single issue over a period of several years, and that the price
per
> > share at the end of that period is the same as it was at the
> beginning
> > of the period, with significant price variations in between. If we
> > ignore frictional costs -- the bid - ask spread of the market
maker
> > and the commission of the broker -- we are playing a zero-sum
game.
> > Those of us who make money are taking it from those who lose
money.
> > If, instead of the final price being the same as the beginning
> price,
> > the final price is higher, then the price has an upward bias and
> more
> > money is made than lost. This is when we all get to claim it was
our
> > cleverness that made us money. If the final price is lower, the
> price
> > has a downward bias and more money is lost than made.
> >
> > The price data for the period we are trading has two components.
One
> > is the information contained in the data that represents the
reason
> > the price changes -- the signal component. The other is
everything
> we
> > cannot identify profitably -- the noise component. Note that
there
> may
> > be two (or more) signal components. Say one is a long term trend
in
> > profitability of the company, and the price follows
profitability.
> Say
> > the other is cyclic price behavior that goes through two complete
> > cycles every month for some unknown but persistent reason. In
every
> > financial price series, there is always the random price variation
> > that is noise. The historical price data that we see consists, in
> this
> > case, of trend plus cycle plus noise. Each component has a
strength
> > that can be measured. If the signal is strong enough, relative to
> the
> > noise, our trading system can identify the signal and issue buy
and
> > sell signals to us. If our trading system has coded into it logic
> that
> > only recognizes changes in trend, the cycle component is noise as
> seen
> > by that system. That is -- anything that a trading system does not
> > identify itself, even though it may have strong signal
> characteristics
> > when analyzed in other ways, is noise.
> >
> > Over the recent decades, analysis of financial data has progressed
> > from simple techniques applied by a few people in a few markets
> using
> > proprietary tools to sophisticated techniques applied by many
people
> > in many markets using tools that are widely available at low
cost.
> The
> > techniques used successfully by Richard Donchian from the 1930s,
and
> > Richard Dennis and William Eckhart in the 1980s, were simple. To
the
> > extent that the markets they traded did not have strong trends,
> every
> > profitable trade they made was at the expense of another trader.
> > Today, every person hoping to have a profitable career in trading
> > learns about techniques that did work at one time. They are well
> > documented and are often included in the trading system examples
> when
> > a trading system development platform is installed.
> >
> > Assume that a data series is studied over a given date range.
Using
> > hindsight, we can determine the beginning price and the ending
> price.
> > Continuing with hindsight, we can develop a trading system that
> > recognizes the signal component -- some characteristic about the
> data
> > series that anticipates and signals profitable trades. By trying
> many
> > combinations of logic and parameter values, we will eventually
find
> a
> > system that is profitable for the date range analyzed. If we are
> lucky
> > or clever, the system recognizes the signal portion of the data.
Or,
> > the system may have simply been fit to the noise. The data that
was
> > used to develop the system is called the in-sample data. If the
> system
> > does recognize the signal and a few of us trade that system,
while
> all
> > the rest of the traders make random trades, those of us who trade
> the
> > system will make a profit. On average, the rest lose. As more and
> more
> > people join us trading the system, each of us earns a lower
profit.
> In
> > order to continue trading profitably, we must be earlier to
> recognize
> > the signal, or develop better signal recognition logic and trade
> > different signals or lower strength signals. By the time the date
> > range we have studied has passed, most of the profit that could
have
> > been taken out of that price series using that system has been
> taken.
> > Perhaps the future data will continue to carry the same signal in
> the
> > same strength and some traders will make profitable trades using
> their
> > techniques, or perhaps that signal changes, or perhaps so many
> traders
> > are watching that system that the per-trade profit does not cover
> > frictional costs.
> >
> > Data that was not used during the development of the system is
> called
> > out-of-sample data. But -- important point -- testing the
> > profitability of a trading system that was developed using recent
> data
> > on older data is guaranteed to over-estimate the profitability of
> the
> > trading system.
> >
> > Financial data is not only time-series data, but it is also
> > non-stationary. There are many reasons related to profitability of
> > companies and cyclic behavior of economies to explain why the
data
> is
> > non-stationary. But -- another important point -- every profitable
> > trade made increases the degree to which the data is non-
stationary.
> > There is very little reason to expect that future behavior and
> > profitability of well known trading systems will be the same as
past
> > behavior.
> >
> > Which brings me to several key points in trading systems
> development.
> >
> > 1. Use whatever data you want to to develop your systems. All of
the
> > data that is used to make decisions about the logic and operation
of
> > the system is in-sample data. When the system developer -- that
is
> you
> > and me -- is satisfied that the system might be profitable, that
> > conclusion was reached after thorough and extensive manipulation
of
> > the trading logic until it fits the data. The in-sample results
are
> > good -- they are Always good -- we do not stop fooling with the
> system
> > until they are good. In-sample results have no value in
predicting
> the
> > future performance of a trading system. None! It does not matter
> > whether the in-sample run results in three trades, or 30, or
30,000.
> > In-sample results have no value in predicting the future
performance
> > of a trading system. Statistics gathered from in-sample results
have
> > no relationship to statistics that will be gathered from trading.
> None!
> >
> > The follow-on point, which relates to Monte Carlo analysis, is
that
> > rearranging the in-sample trades gives no insight into the future
> > characteristics of the system. Yes, you can see the effect of
taking
> > the trades in different orders. But why bother? They are still
> > in-sample results and still have no value.
> >
> > The Only way to determine the future performance of a trading
system
> > is to use it on data that it has never seen before. Data that has
> not
> > been used to develop the system is out-of-sample data.
> >
> > 2. As a corollary to my comments above, that out-of-sample data
Must
> > be more recent that the in-sample data. The results of using
earlier
> > out-of-sample data are almost guaranteed to be better than the
> results
> > of using more recent out-of-sample data. Consequently, techniques
> > known as boot-strap or jack-knife out-of-sample testing are
> > inappropriate for testing financial trading systems.
> >
> > So, when is Monte Carlo analysis useful in trading system
> development?
> >
> > 1. During trading system development. It may be possible to test
the
> > robustness of the system by making small changes in the values of
> > parameters. This can be done by making a series of in-sample test
> > runs, each run using the central value of the parameter (such as
the
> > length of a moving average) adjusted by a random amount. The
values
> of
> > the parameters can be chosen using Monte Carlo methods. Note that
> this
> > does not guarantee that the system that works with a wide range of
> > values over the in-sample period will be profitable out-of-
sample,
> but
> > it does help discard candidate systems that are unstable due to
> > selection of specific parameter values.
> >
> > Note that this technique is not appropriate for all parameters.
For
> > example, a parameter may take on a limited set of values, each of
> > which selects a specific logic. Such parameters, associated with
> what
> > are sometimes called state variables, are only meaningful for a
> > limited set of values.
> >
> > 2. During trading system development. It may be possible to test
the
> > robustness of the system by making small changes in the data.
> Adding a
> > known amount of noise may help quantify the signal to noise ratio.
> > When done over many runs, it may reduce (smooth out) the
individual
> > noise components and help isolate the signal components.
> >
> > 3. During trading system development. It may be possible to
> > investigate the effect of having more opportunities to trade than
> > resources to trade. If the trading system has all of the following
> > conditions:
> > A. A large number of signals are generated at exactly the same
time.
> > For example, using end-of-day data, 15 issues appear on the Buy
> list.
> > B. The entry conditions are identical. For example, all the
issues
> are
> > to be purchased at the market on the open. If, instead, the
entries
> > are made off limit or stop orders, these can and should be
resolved
> > using intra-day data -- as they would be in real time trading.
> > C. The number of Buys is greater than can be taken with the
> available
> > funds. For example, you only have enough money to buy 5 of the 15.
> >
> > If your trading system development platform provides a method for
> > breaking ties, use it. For example, you may be able to calculate a
> > reward-to-risk value for each of the potential trades. Take those
> > trades that offer the best ratio. AmiBroker, for example, allows
the
> > developer to include logic to compute what is known as
> PositionScore.
> > Trades that are otherwise tied will be taken in order of
> PositionScore
> > for as long as there are sufficient funds.
> >
> > Alternatively, Monte Carlo methods allow you to test random
> selection
> > of issues to trade. My feeling is that very few traders will make
a
> > truly random selection of which issue to buy from the long list. I
> > recommend quantifying the selection process and incorporating it
> into
> > the trading system logic.
> >
> > 4. During trading system validation. After the trading system has
> been
> > developed using the in-sample data, it is tested on out-of-sample
> > data. Preferably there is exactly one test, followed by a
decision
> to
> > either trade the system or start over. Every time the out-of-
sample
> > results are examined and any modification is made to the trading
> > system based on those results, that previously out-of-sample data
> has
> > become in-sample data. It takes very few (often just one will do
it)
> > peeks at the out-of-sample results followed by trading system
> > modification to contaminate the out-of-sampleness and destroy the
> > predictive value of the out-of-sample analysis.
> >
> > One possibly valuable technique that will help you decide whether
to
> > trade a system or start over is a Monte Carlo analysis of the
> > Out-of-sample results. The technique is a reordering of trades,
> > followed by generation of trade statistics and equity curves that
> > would have resulted from each trade sequence. What this provides
is
> a
> > range of results that might have been achieved. Note that this
> > technique cannot be applied to all trading systems without
knowledge
> > of how the system works. If the logic of the system makes use of
> > earlier results, such as equity curve analysis or sequence of
> winning
> > or losing trades, then rearranging the trades will result in trade
> > sequences that could never have happened and the analysis is
> > misleading and not useful. Also note that most of the results
> produced
> > by the Monte Carol analysis could also be developed from
techniques
> of
> > probability and statistics without using Monte Carlo techniques --
> > runs of wins and losses, distribution of drawdown, and so forth.
> >
> > In summary --
> >
> > Monte Carlo analysis can be useful in trading system development.
> But
> > only in those cases described in items 1, 2, 3, and 4 above.
> >
> > Rearranging in-sample trades has no value.
> >
> > Obtaining meaningful results from Monte Carlo techniques requires
> > large numbers -- thousands -- of additional test runs.
> >
> > If you decide to apply Monte Carlo techniques, I recommend that
they
> > be applied sparingly, primarily to test robustness of a likely
> trading
> > system as in numbers 1 and 2 above, not in the early development
> stages.
> >
> > On the other hand -----
> >
> > What is tremendously useful in trading system development is
> automated
> > walk-forward testing. I believe that is the Only way to answer the
> > question "How can I gain confidence that my trading system will be
> > profitable when traded?" But that is the subject of another
posting.
> >
> > Thanks for listening,
> > Howard
> >
>
------------------------------------
**** 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/
|