Mirocana System: an Overview
The purpose of the article is to bring you a point of view to the Mirocana System then to describe what are the inner components and how do they interact with each other.
"As the CTO, my main task is to come up with the technical solution to a real-world problem of market prediction and to design and develop a stable system that integrates very different business ideas into one common thing for getting the most efficient outcome."
A.I. CTO - Alex Kouprin
Let's start with a very high-level view. The Mirocana System can be described as three consequently connected modules.
1. Context understanding module. The purpose of this module is to extract signals of real world which affect markets before they have reached markets. You can think about it as a stone that is thrown into water. Waves created by the stone are market changes, so we can predict them knowing information about the stone.
The module includes AI technologies to analyse and understand various data sources: news, articles, experts' opinions, moods, people attention, political decisions, etc. As this point, it gets not only signals but common understanding of where the whole market flows.
2. Middle-frequency prediction module. This module is the heart of the Mirocana System as known as the Core. In general, the purpose is to build middle-term market predictions as known as allocations. Each allocation is a weighted portfolio of currencies where weights are non-negative and their sum is equal to one (this rule applies to the crypto-currencies only but for simplifying let's assume it's common). We're getting allocations for each period of time, from 2 hours to 1 day. The idea of allocations is to collect the best portfolio for the next period of time.
The question is, how to get those allocations? We've built the system of three blocks: strategies, super strategies and simulations.
Strategies are the first layer of code which can predict binary predictions for all tickets of chosen market, period of time and duration. The next layer is called super strategies. It collects all predictions spawned by strategies by some point of time and tries to understand which of them are the most likely to happen. In other words, for each moment in time we collect a weighted set of strategies' results and make a decision for all tickets of chosen market, period of time and duration. The last layer we call simulations. Each simulation is a complex logic which combines the results of super strategies on all tickets simultaneously. The outcome result of a simulation is an allocation.
3. High-frequency trading module. Reminds you, we're still have a question of transferring currencies from one allocation to the next one. Technically, you may think about it as a problem of moving the point on the surface of multi-dimensional sphere with some market-specific rules of point moving.
To solve the problem, the module itself is a combination of several connected parts: order book collector, exchange executor, HFT recommendation part and exchange emulator. These parts allow to collect market data, prepare orders recommendations, execute them on a chosen market and test different recommendation logic on an emulator.
The development process isn't easy and fast, especially when we're working on a high-tech complex AI system. That's why it's so important to show clearly what is done for now in the Mirocana System.
The Core, our middle-frequency prediction module, works as described above. For today, we've got calculated more than 100 mln predictions, over 1 mln super predictions and about 2 mln allocations. We prepared ~1.5 TB of analysed data and it's far from our limits.
The HFT module is currently in alpha-testing state. The codebase is almost ready, we collected ~2.5 billion records from order books and have HFT recommendation' logic and executor's logic implemented.
The context understanding module is in our further plans.
It's clear that all modules described above amplify each other. It's possible to trade knowing only context, or portfolio, or HFT but the best result is achievable by using all three of them. The goal of the Mirocana Core Team is to implement and run all the modules together. Right now, we're working on the product which allows our customers to connect to the Mirocana Core directly.
Special thanks for creation of this text to A.I. CTO - Alex Kouprin.