Often, trading model developers “spoil” the eventual results of their model by making errors early in the process. These errors could be using poorly-collected data, not accounting for survivorship bias, or testing too many specifications of a similar model. Data snooping such as that can be particularly costly in that it is an error that cannot be reversed. Therefore, if you haven’t yet begun the active work of acquiring data, specifying a model, or backtesting, then you have the opportunity to conduct the testing and development process optimally.
For clients coming to me for trading model development, I find it efficient to first step back and begin with a broad discussion so that I can acquire a conceptual understanding of your idea and examine the strategy for face validity. Once comfortable with your hypothesis, I would begin the specification of a model meeting that investment thesis. During this early phase of developing the model, I would ensure that the model doesn’t suffer from any biases that are standard in finance or portfolio theory, such as data snooping bias or survivorship bias. I would do this by not testing too many models, using robust strategies that are not overspecified, and considering the effect of non-survivors in datasets.
From there, I briefly discuss the means of trade execution that you will use in your system, which could be manual trade execution, automated trading, or a combination of both. I also discuss whether absolute return or risk-adjusted return will be the objective of the trading model, and the availability of the data needed to backtest and to trade the system in real time.
Once I feel comfortable that I understand the core goal of your trading model, and before I begin working on the formal quantitative analysis, I outline for you qualitatively what I believe to be the most effective way to develop the model. I also provide you with a brief report on the quantitative methodologies that I will use, based on the particular needs of your model.
Clients come requesting trading systems in various forms. You can develop models which can be traded in a trading software package such as Ninjatrader, Tradestation, Metastock, or E-Signal. But if you are serious about your trading business, I strongly recommend to create your own trading system/platform using standard programming languages like C# or C++.
As most trading systems involve robust backtesting and sensitivity analyses, having a reliable and cleaned data set is of extreme importance. Many of my clients use external data feeds which provide real-time data for trading, but do not have historical databases included. In these circumstances, I often have the data needed to do more extensive backtesting, and/or can acquire it at a reasonable cost. If the data is in a difficult to use format, I have to convert the data set into something more useful. If you are working on a system that is dependent upon relatively new securities, the data may not exist. In this case, I would work with you to construct representative return streams that can be used to back-test your system through a wider variety of economic and trading environments than may currently be available.
Backtesting and Developing the Trading Model
Back-testing is one of the most important steps in model development. A positive result from the testing procedure is not a guarantee of future success, but it does indicate that sufficient evidence exists of the indicator’s success to include it in the final signal. Of course, I take into account commissions, bid/ask spreads, volume, and other trading costs and limitations during our testing procedures.
My primary objective is that all of my work be both robust and fully replicable. I don’t help you to make trading profits by creating overspecified versions of a model, by testing dozens of indicators, or by testing multiple variations of the same core model until I find something that “looks good”. Testing and optimizing trading systems often confer over academic work that they are publishing, about the cutting edge strategies being developed every day in academia, or over their own models. I understand that strategies need to be clearly specified beforehand in order to be robust, that multiple optimization attempts cannot be attempted on the same data set, and that violation of principles such as these will render valueless any predictions on the future performance of the model. This problem (data snooping resulting in non-robust results) is the issue that comes up the most for us when discussing with traders my plans to develop their trading model. Many traders come to me not fully understanding the biases that can be present in financial market data. Trading models that are created properly work in real-time, and not just in the past.
Risk management is one of the most important aspects of trading system development. Even an ideal signal-generating procedure can produce negative results if position sizing, entries, exits, and/or leverage are suboptimally applied. I realize that every trader has a unique risk tolerance, and we work with you to ensure that you completely understand the risk-management process. I run your system through proprietary testing procedures designed to match the system’s risk to your risk tolerance. These process minimizes or eliminates the risk of losing more than you are comfortable with. A good system needs to estimate conservative, realistic, and optimistic scenarios for the statistical distribution of each variable in the signal development process. These variables are then simulated millions of times across the entire range of their distributions, providing a clear conception of the maximum gains and losses of the system in a given unit of time. Further, maximum drawdown statistics are calculated and graphically displayed for the system across the same range of simulated histories. After discussing the results of analysis, we consider risk tolerance, position sizing and the use of leverage.
Of course, I remain available for consultation on any of these issues, either at that time or in the future. Trading models can’t be carried out by rote (this is true of even automated trading systems), they need to be understood conceptually. I will remain with you, in a professorial role that is still familiar to many of us, until you have that conceptual understanding.
The final stage of the development of a trading model is execution. I can help you select the ideal platform with manual or automated execution. Manual trading is typically reserved for medium- to long-term systems, as it requires regular and extensive human intervention; in contrast, short-term systems require rarer interventions, as automated trading systems handle most of the trading. There are various trading software packages, not all of which support automated trading. The ones that do may not be suitable for your specific system. Moreover, some packages may require in-depth programming before automated trading is possible. I can help you discover precisely the service your new model requires and help you integrate your selection with your current systems and operations.
Confidentiality, the most important factor in the relationship.
I understand the importance and necessity of confidentiality when dealing with any trading model or idea, and provide all of my prospective clients with a Non-Disclosure Agreement immediately upon contact. This ensures you that your idea and/or existing model will not be shared with any third parties, and your consultation with me is completely confidential.
3 thoughts on “How do I develop Trading Systems?”
Where i can found example of HFT systems on Forex or Futures for retail user ? no 100k$ account and 1$ for the fees 🙂
Can’t tell at retail level…
But be careful, this is no HFT at retail level… fees are too high for retailers, and infrastructure is way behind.
Reblogged this on Technology & Quantitative Finance.