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

[amibroker] Re: Monte Carlo Analysis in AMIBROKER?


  • Date: Mon, 25 Jan 2010 17:53:32 -0000
  • From: "Mike" <sfclimbers@xxxxxxxxx>
  • Subject: [amibroker] Re: Monte Carlo Analysis in AMIBROKER?

PureBytes Links

Trading Reference Links

> If I were to run tests one year at a time - say i chose 01/01/2008 to 01/01/2009 - does that mean that AB will only pick up stocks a, b and c given they are the only ones left in the index as at todays date? 

Most likely your data provider will have deleted the remaining symbols from your database such that, yes, only {a, b, c} will be used at any date. Some providers will have moved the symbol to a special 'delisted' area, but they might no longer be marked as included in the index. So, again, only {a, b, c} will be used.

Mike

--- In amibroker@xxxxxxxxxxxxxxx, Joseph Occhipinti <joseph_occhipinti@xxx> wrote:
>
> Thank you Howard
> 
> Greatly appreciated
> 
> Just a question regarding the following comment of yours:
> 
> "Use the lists of stocks that were in an index at the start of each year and run tests one year at a time, with lists reconstructed at the beginning of each year."
> 
> Instead of back testing 'All Quatotaions', I select 'From' (selecting one year at a time), will this address the issue of survivorship bias? As an example:
> 
> 
> as at 01/01/2008
> a
> b
> c
> d
> e
> 
> as at 01/01/2009
> a
> b
> c
> d
> 
> as at 25/01/2010
> a
> b
> c
> 
> 
> If I were to run tests one year at a time - say i chose 01/01/2008 to 01/01/2009 - does that mean that AB will only pick up stocks a, b and c given they are the only ones left in the index as at todays date? 
> 
> Or will AB pick the results of a,b,c,d and e for that year? And then simply omit 'e' for the following year's test?
> 
> (When a stocks get delisted does that mean it is ommitted from any historical testing done?)
> 
> MY SYSTEM:
> In short, my system is an intraday one - im in by the open and out by the close. So i hold no stocks overnight. So i am not exposed to trading halts or overnight gaps etc.
> (not sure if this makes a difference)
> 
> 
> Thanks again for your time Howard
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ________________________________
> From: Howard B <howardbandy@xxx>
> To: amibroker@xxxxxxxxxxxxxxx
> Sent: Mon, 25 January, 2010 4:12:08 AM
> Subject: Re: [amibroker] Monte Carlo Analysis in AMIBROKER?
> 
>   
> Hi Joseph --
> 
> There are many uses of Monte Carlo in the fields of econometrics and
> financial analysis and modeling. But the three described below are the
> most applicable to trading systems development. Some are easy to
> implement in AmiBroker, others are more difficult. Some are useful,
> others are not useful or poor practice.
> 
> 1. Use Monte Carlo techniques to study the robustness of a trading
> system to small changes in the data. Small, random amounts of noise can
> be added to the open, high, low, close, and volume to see if the
> trading system is sensitive to noise in the data. This is easily done
> and useful. There is a more detailed explanation, including code, in my
> book, Quantitative Trading Systems.
> 
> 2. Use Monte Carlo techniques to study the robustness of a trading
> system to small changes in values of parameters. When an optimization
> is performed, the value of an objective function is calculated for
> every set of parameter values tested. The best set of parameters is the
> set that give the highest value of the objective function. If we
> consider a two dimensional optimization, say the lengths of two moving
> averages, then we can imagine and visualize the objective function as a
> surface above (or below) the plane defined by the two variables. If the
> highest value of the objective function is an isolated peak, then the
> system is sensitive to changes in the relationship between the model
> and the data being modeled, and even small changes in the
> characteristics of the data will cause a shift in the position of the
> optimal solution. That is, the system is not robust relative to changes
> in the values of the parameters. If, on the other hand, the highest
> value of the objective function is a broad plateau, then the system is
> relatively insensitive to changes in the relationship between the model
> and the data and small changes in the characteristics of the data will
> not result in significant changes in the profitability of the system.
> That is, the system is robust relative to changes in the values of the
> parameters. 
> 
> Monte Carlo techniques can be used to study the sensitivity of the
> system by adding random noise to the values of the parameters, testing
> solutions near the optimal solution. There are many subtle issues that
> arise when performing this type of study, making general solutions very
> difficult. Specific solutions are easy to code by running a second set
> of optimizations that look at the solution space near the previously
> selected optimum. Additionally, some of the optimization methods
> included with current releases of AmiBroker (such as the non-exhaustive
> method known as cmae -- Covariance Matrix Adaptation Evolutionary
> Strategy) have a robustness component that is used with no need for
> additional coding by the trading system developer.
> 
> 3.  Monte Carlo techniques can be used to study the risk profile of a sequence of trades. 
> 
> Your question prompts me to ask how the tests you are running are
> defined. If the universe of stocks being tested is comprised of the
> 3000 stocks that are the current members of the Russell 3000 index, and
> the test period is the past ten years, then there is a considerable
> survivorship bias in the test runs. That is, the 3000 companies that
> are in the index now have survived the past ten years, but those
> companies that disappeared during that period are not included in the
> tests. That bias strongly affects the test results. In some of my
> research, I have compared two studies:
> 1.  Use the list of stocks currently in an index.
> 2.. Use the lists of stocks that were in an index at the start of each
> year and run tests one year at a time, with lists reconstructed at the
> beginning of each year.
> The results of the first study are always significantly better than the
> results of the second study. Ignoring the survivorship bias will cause
> the trading system developer to significantly over-estimate the
> likelihood that the system will be profitable in the future.
> 
> Norgate Premium Data (http://www.premiumd ata.net/)
> is an excellent source of end-of-day data for the US and Australian
> markets, including data for issues that have been delisted. They are in
> the process of developing historical lists of components of major
> indexes which will be very valuable for study of the effects of
> survivorship. 
> 
> Your question also raises a related issue about how trades are
> selected. Some developers run a general test using a large universe of
> possible issues to trade, which results in a number of potential
> positions to enter that is greater than the funds available to take
> those positions. They then consider using Monte Carlo techniques to
> analyze what might happen if different combinations of issues are
> purchased. This is an inappropriate use of Monte Carlo analysis and is
> poor trading system development practice. I do not know of a single
> trader or trading company who runs a test or report, generates a list
> of signals, sees that it has more signals than he or she has money, and
> rolls dice to determine which of the signals to actually take. The
> trader will always have a secondary set of conditions that are used to
> rank-order the list of signals so that the best candidates can be
> purchased. If the secondary set of conditions comes from non technical
> analysis data, rankings from Investor's Business Daily for example,
> then it will be difficult to incorporate the ranking in any trading
> system development platform, including AmiBroker. If, however, the
> secondary set of conditions comes from technical analysis, recent
> relative strength of price for example, then it is easy to calculate a
> ranking score and use it so that the signals generated do not exceed
> the funds available and there is no need for application of a Monte
> Carlo technique. In AmiBroker, this secondary set of conditions is
> stored in the reserved variable PositionScore. It is, in effect, a
> tie-breaking component of the objective function.
> 
> Returning to the question of reordering trades to study the risk
> associated with the trading system. Use of Monte Carlo analysis in this
> area is very valuable. It is best done using a program that accepts a
> list of closed trades and performs the risk analysis. Equity Monaco,
> available free (http://www.tickques t.com/product/ equitymonaco. html), is a good one to start with.  And Market Systems Analyzer (http://adaptrade. com/) has more capability and a trial version.
> 
> I hope this has been helpful.
> 
> Thanks for listening,
> Howard 
> 
> 
> On Sun, Jan 24, 2010 at 4:38 AM, Joseph Occhipinti <joseph_occhipinti@ yahoo.com> wrote:
> 
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >  >
> >
> >>
> > 
> >>      
> > 
> >Does anyone know how to use this function in amibroker?
> >
> >
> >Ie. when i "backtest" a system on all of the trades that would have occurred in all / any of the stocks that make up the rusell3000 over the past 10 years, does that backtest result only give ONE course of action, or is it giving me the results of say 10,000 courses of action (or histories, or whatever the correct term is)
> >
> >
> >I am assuming it is only the ONE as I am not seeing any standard deviations or confidence levels in the results summary. 
> >
> >
> >1. please advise on whether this function exists 
> >2. where such a fucntion can be located on the program
> >
> >
> >thank you
> >>
> >
> >
> >
> >
> >
> >
> >
> >
> >________________________________
>  >See what's on at the movies in your area. Find out now.
> >
> > 
> 
>  
> 
> 
>       __________________________________________________________________________________
> See what's on at the movies in your area. Find out now: http://au.movies.yahoo.com/session-times/
>




------------------------------------

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

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

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

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

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:
    amibroker-digest@xxxxxxxxxxxxxxx 
    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/