The development of trading systems can achieve high degrees of complexity. The process of simulating a particular strategy, termed backtesting can be triggered in several stages of optimization, and monitored at various levels of automation.Developers always seek out new strategies or logical combinations. A system composed of a set of modules, which are interconnected, could trigger many situations.
The algorithmic complexity that can arise from this process is very high and if not taken care of organizing the evolution of codes, it is possible that errors can be observed as recorded in KnightCapital. Modules that, being in great quantity and interconnected, go through changes at different times, and, may generate imbalances in the flow of information.At any given time will be useful to carry out several simulations with the aim of optimizing the parameters of a given strategy. However, this strategy can be evaluated in several ways. After optimization we aim to evaluate the effectiveness of this strategy and conduct simulations around the solution found by varying the parameters a bit and observing individual sensitivity. We can simulate a delay, an expected or unexpected latency at any given time or at all times and evaluate the performance of the system after this. The truth is that the word complexity must first be demystified, for any system automation performed that´s an increased complexity. The word complexity brings us a mixed feeling of increasing power and technology versus an out-of-control system management. It can leave a hesitation sentiment because of the potential complexity risk.It is highly useful to observe the maximum possible simulations of a particular strategy, when we perform controlled and systematic changes. This increased complexity is highly desirable; the central objective on strategies development and testing is to observe the system performance in different situations.