Hi Howard,

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.tickquest.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.

My experience with Equity Monaco stops at the first page of the manual. Isn't 
this a NeoTicker product ? Or at least for NeoTicker. Can I use it with 
AmiBroker ?

.... oh yes, something else. And you know what ... your next book. When ?

Regards, Ton.



  ----- Original Message ----- 
  From: Howard B 
  To: [email protected] 
  Sent: Sunday, January 24, 2010 6:12 PM
  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.premiumdata.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.tickquest.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 
<[email protected]> 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. 



  

Reply via email to