Algorithmic trading strategies are most often evaluated by benchmarking against historical data and observing the results. This limits the assessment scenarios to situations similar to those for which historical data is available. To evaluate high-frequency trading systems in a broader context, a different approach is required. This article presents an agent-based financial market simulator that allows you to explore the behavior of the market in a wide range of conditions. Agents can simulate human and algorithmic traders working with different targets, strategies and reaction times, and market behavior can use combinations of simulated and historical data. The simulator simulates the structure of the market, allowing you to determine the behavior of market makers, liquidity providers and other market participants. The primary use of the system has been to evaluate algorithmic trading strategies in a corporate environment, but other uses include education and training, and policy evaluation.
Algorithmic trading is rapidly developing around the world and has dramatically changed the way securities are traded in financial markets.
According to several reports, more than 50% of the volume of US stock markets in recent years has been generated by algorithmic trading. In order to manage risk exposure and optimize profits, algorithmic trading strategies are usually evaluated for correctness and effectiveness before being run in live markets. This is done in practice with the help of simulators. Existing simulators rely heavily on real-time or historical market data, usually recorded from the actual market for the purpose of back-testing trading patterns during their development cycle. While this can provide traders with valuable information, there are a number of pitfalls. First, real market data is not always available, which limits the use of simulators to certain market hours. In addition, the tested trading strategies do not have any effect on the market as they can only follow the trend and their orders are simply executed based on the current market conditions. Similar problems also exist in backtesting approaches where trading strategies are tested against an existing dataset with the problematic assumption that orders would not change historical prices if they were executed in the real market. Moreover, this approach is limited by potential overfitting. By refining the parameters of a trading strategy based on a certain period of historical data, the results can be skewed and lead to a return that can never work again. Last but not least, existing simulators usually don't provide a standard protocol for interacting with users. Instead, they require skills in specific programming languages and require the implementation of trading strategies.
We offer different simulation architecture based on simulated price movement and other scenarios.