Even after designing and building a successful trading system that really looks promising, an operator may find that your system is imperfect. There may be some problems, such as an event that continues to generate losses; or maybe the rules are too broad and need to be optimized.What is the easiest way to solve the problem? How effective is the optimization? This section will show you how to fix and optimize your trading system to maximize profits and minimize losses.
Troubleshooting trading system
Problem solving is a very important trading system development aspect. A decent trading system will be profitable in most market conditions, but if occasionally generate large losses ( high drawdowns ), the designer can work to identify and resolve the problem. Here are four simple steps:
Identify the problem
Find all situations in which the problem occurred during backtesting, and / or start recording exactly when the problem occurs during live operations. In each instance, take note of any tendency of the following four factors:
- graphic patterns or series of prices - price spikes.
- Trading volume - large initial volume and low volume thereafter.
- Spread Bid / Ask price - price spikes during periods of low trading volume often indicate high-amplitude spreads.
- Margin (if used in operations).
- News publishing and / or significant market events.
These are just some of the problems that can occur when using operate either a trading system.The market is a very dynamic atmosphere and many things can happen. other factors such as the broker we are using, which may not be offering the best trading conditions, including slow implementation, too wide spreads, landslides price, disconnections and other trading platform must also be considered.
Evaluate the problem
Use the information gathered to determine exactly what caused the malfunction of the system or generated losses. This is often done using common sense, or analyzing transaction records (provided by the broker). Here are examples of how some conditions of the various factors listed above may be the reason for an identified problem:
- Graphic patterns or price series: The system is not able to sell during steep drops or buy over steep price rises. Perhaps the system was not enough to buy or sell or the broker was not able to process the orders under these conditions time.
- Trading volume: The system can not sell during downturns or buy for significant increases due to the volume. Perhaps the market had a trading volume so low that the system could not buy or sell at a certain price, specified by the system rules. In these cases, the price can be misleading without considering the volume and bid / ask price spread.
- Spread Bid / Ask Price: The system performs an operation but does not produce asmany benefits as it should when the closure occurs. This could be due to the fact that the operator forgot to consider the Bid / Ask price spreads. If a system is programmed to buy and sell the "current price" you are actually buying and selling price Ask Bid price offered bythe market or the broker at the time when the operation is performed. Sometimes the differences between the Bid price and the Ask price can be large, resulting in unwanted losses.
- Margin: The system closes positions suddenly for no apparent reason. If this happens, you may have forgotten to consider margin calls (margin calls) and more than one position was closed due to little room for negotiation available in the account.
- News publishing and / or significant market events: During the publication of news or important economic indicators, the market tends to have a more erratic behavior with peaks and steep drops that defy prediction. And sometimes the moves are so fast and large that glides price such occur that the broker may not execute orders, such as a stop loss or entry order, which may also affect the result of any operation.
Consider the alternatives
Just try some solutions to the problems that have been identified. Consider the following alternatives corresponding to the above problems:
- Graphic patterns or series of prices: An alternative is to simply tell the system to wait until the price stabilizes before buying or selling. This can be done using the differences between the previous price and the current price to create a rule.
- Trading volume : To fix this problem, you can create a rule that requires that equity has a certain volume before performing an operation.
- Spread Bid / Ask Price: This is the developer may prefer to use a rule to buy and sell system based on Bid and Ask prices instead of the current price.
- Margin: Using margin can be profitable if the risk is managed effectively. Limit the risk serves to prevent the system take account to a margin call. This can be done by using stop loss levels or other similar techniques to limit risk.
- Broker - related problems: If the problem is the broker and execution offered, seriously consider changing company and find a broker that provides the conditions that allow its trading system to succeed. It makes no sense to invest time and effort in developing a promising system only for everything to be wasted because of a bad broker.
- News publishing and / or significant market events: A simple solution is not to use the trading system (or turn it off if programmed to operate automatically) before publishing a story or important market and keep it off event for a period reasonable time after publication, to avoid high market volatility that often occurs in these events.
Implement a solution
Finally, we need to apply the solution and see how it works. Apply backtesting or paper trading before using the system to operate again live, it is often a good idea after applying a solution, because sometimes the solutions have unintended consequences. For example, additional rules may limit the number of days with losses, but may also decrease the total profits (due to lost opportunities).
System Optimization
Optimization simply means finding the best set of parameters for a given market. This process can marginally improve results. However, it also carries many risks because their underlying assumption is that past performance is indicative of future price movements, which does not always happen.
Optimization can be achieved by changing the parameter values you want to optimize and then retesting these changes. Note that the other parameters must remain constant for the effects of changes are determined. Once you find the value that produces the highest performance in the backtesting tests, we implemented this value in the trading system.
Consider a simple example. Suppose that an operator analyzed the EUR / USD and found that it could optimize your system by using a daily chart. This same process can also be carried to a higher degree. For example, if a simple moving average of 10 periods works better than a simple moving average of 5 periods in a system of crossing moving averages for a particular market then be used 10 instead of 5. The problem here is not only fancy, but also in the fact that the system could work worse in many other markets, making it less universal and applicable.
Many system developers give up the optimization stage for these two reasons:
- Optimization often exaggerates the results. This is because the parameters are very specific and not universal, so that any changes in the market (ie future) can cause instability.
- In many cases, optimization will not improve performance to a significant degree. slight improvements may occur; however, the loss of universality is a high price to pay.
However, if the optimization is done as it should be, avoiding sobreoptimización, system performance can be improved which leads to increased profits. Therefore, it is a tool that should always be present in the arsenal of any developer of trading systems. The above problems only occur when optimization is applied wrongly or abused.
As a general rule, optimization should only define more or less extensive modifications to the parameters instead of establishing specific rules, even if these rules are successful in backtesting and the paper trading.
conclusion
Problem solving is crucial to make a trading system to function as desired by the developer. It is important to identify problems observing the situations in which they occurred and then assess how certain conditions of various factors - such as price patterns, volume, spread bid / ask and margin - might have caused the problem.
Optimization can improve outcomes, but it is important to remember that it has its limitations.Besides the fact that it is based on the assumption that past performance indicates future performance, there is the stage in which the operator creates specific rules - optimization serves specifically to determine the values of the parameters that can produce the best results in a system.