Greetings --
My views about system development, use of multiple issues, and performance over time are a little different.
First a definition -- a system is a combination of a model (logic, rules, parameters) and some data (price and volume). This is the standard definition of models among professionals in the areas of learning, modeling, and simulation. That said, the AmiBroker code is the model. Whatever data is passed to it is analyzed, transformations made, indicators computed, rules tested, signals generated, and trades entered and exited.
The process of system development is a process of learning. Some models are designed to memorize -- ours must learn. Learning is the process of fitting the specifics of the model to the specific data presented to it with the intention of using that system to make predictions in the future.
Learning is in two steps.
1. Examine the data, try out many alternative models through testing ranges of values for the parameters and sets of rules. This is backtesting and optimizing. Pick the best. Best is determined by assigning each alternative system a score based on the objective function. Along with assigning a score to each alternative, the objective function quantifies the subjective preferences of the trading system developer. If the objective function is well formulated, those alternatives that rank highest are most likely to be both the best performing (most profit potential for a normalized level of risk) and most acceptable relative to the subjective criteria. There is no doubt -- this is data mining. There is no alternative -- it must be done. Data mining and optimization are not bad things in and of themselves. They are tools of the trade. They must be used properly.
2. Verify that the model learned something general. That it is not only the fit to the specific data, but also that the trades produced when out-of-sample (OOS) data is processed have enough profit potential to compensate for the risk. The best OOS data is data from the same series, not used at all in the development of the model, and more recent in time than the in-sample data.
When learning, be as careful as possible to avoid biases. There are no favorable biases -- all biases are unfavorable. One bias is that of the data used -- it is called selection bias or membership bias. I recommend using a single tradable issue for system development rather than a portfolio. Selection of the constituents of the portfolio introduces a bias and requires a learning process of its own. Choose a single issue that has enough variability to offer profit if signals can be found, but not so much variability that the risk of the resulting system makes trading it dangerous. Then work to find a model that learns the signals.
Rising markets and falling markets often have different characteristics. In stocks and other tradable issues based on equity shares, drops are steeper and shorter in time than rises. A model that identifies good long trades is often poor at identifying good short trades. Do not insist that a single model work well for both short trades and long trades. Do not insist that a single model works well in both rising markets and falling markets. Which leads to some recommendations:
1. Keep the model for long/flat separate from the model for short/flat.
2. If a particular market characteristic causes multiple or large losing trades, have the model recognize when the market conditions are unfavorable and remain flat.
Having a system that generates profitable trades in the future requires that the future resembles the past. That is, that the system is stationary. One of the videos I have posted on YouTube is a presentation I made to a chapter of the Market Technician's Association on the topic of stationarity. The videos of my presentations about risk and about trading system development might also be interesting.
http://www.blueowlpress.com/video-presentations
Best regards,
Howard
My views about system development, use of multiple issues, and performance over time are a little different.
First a definition -- a system is a combination of a model (logic, rules, parameters) and some data (price and volume). This is the standard definition of models among professionals in the areas of learning, modeling, and simulation. That said, the AmiBroker code is the model. Whatever data is passed to it is analyzed, transformations made, indicators computed, rules tested, signals generated, and trades entered and exited.
The process of system development is a process of learning. Some models are designed to memorize -- ours must learn. Learning is the process of fitting the specifics of the model to the specific data presented to it with the intention of using that system to make predictions in the future.
Learning is in two steps.
1. Examine the data, try out many alternative models through testing ranges of values for the parameters and sets of rules. This is backtesting and optimizing. Pick the best. Best is determined by assigning each alternative system a score based on the objective function. Along with assigning a score to each alternative, the objective function quantifies the subjective preferences of the trading system developer. If the objective function is well formulated, those alternatives that rank highest are most likely to be both the best performing (most profit potential for a normalized level of risk) and most acceptable relative to the subjective criteria. There is no doubt -- this is data mining. There is no alternative -- it must be done. Data mining and optimization are not bad things in and of themselves. They are tools of the trade. They must be used properly.
2. Verify that the model learned something general. That it is not only the fit to the specific data, but also that the trades produced when out-of-sample (OOS) data is processed have enough profit potential to compensate for the risk. The best OOS data is data from the same series, not used at all in the development of the model, and more recent in time than the in-sample data.
When learning, be as careful as possible to avoid biases. There are no favorable biases -- all biases are unfavorable. One bias is that of the data used -- it is called selection bias or membership bias. I recommend using a single tradable issue for system development rather than a portfolio. Selection of the constituents of the portfolio introduces a bias and requires a learning process of its own. Choose a single issue that has enough variability to offer profit if signals can be found, but not so much variability that the risk of the resulting system makes trading it dangerous. Then work to find a model that learns the signals.
Rising markets and falling markets often have different characteristics. In stocks and other tradable issues based on equity shares, drops are steeper and shorter in time than rises. A model that identifies good long trades is often poor at identifying good short trades. Do not insist that a single model work well for both short trades and long trades. Do not insist that a single model works well in both rising markets and falling markets. Which leads to some recommendations:
1. Keep the model for long/flat separate from the model for short/flat.
2. If a particular market characteristic causes multiple or large losing trades, have the model recognize when the market conditions are unfavorable and remain flat.
Having a system that generates profitable trades in the future requires that the future resembles the past. That is, that the system is stationary. One of the videos I have posted on YouTube is a presentation I made to a chapter of the Market Technician's Association on the topic of stationarity. The videos of my presentations about risk and about trading system development might also be interesting.
http://www.blueowlpress.com/video-presentations
Best regards,
Howard
On Wed, May 4, 2016 at 3:25 AM, meanomalist@yahoo.com [amibroker] <amibroker@yahoogroups.com> wrote:
Always keep one thing in mind, always have multiple markets runs (bull/ bear) in your development and validation window.
This will ensure that your model is stable and robust.But never even even think that making a model and using is like using it forever. It still needs loads of maintenance and enhancements as you learn more and add into the system.Here is my personal and professional experience, any system or model will not enable you to gain abnormal returns over a period of time.Investing is not as simple as automating it. Its better done the judgmental / discretionary.
__._,_.___
Posted by: Howard B <howardbandy@gmail.com>
Reply via web post | • | Reply to sender | • | Reply to group | • | Start a New Topic | • | Messages in this topic (5) |
**** 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/
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/
.
__,_._,___
EmoticonEmoticon