Этот вопрос требует некоторых знаний алгоритмического трейдинга и IB TWS API.
В настоящее время я думаю о том, как реализовать понятие многих стратегий, которые
может торговать одновременно. Интересно, стоит ли мне даже разместить их всех в одном
клиент — или, возможно, использовать 1 клиент-1 алгоритм. Если я выберу много стратегий
работает параллельно в моем единственном клиенте (это может быть полезно), что
шаблон является лучшим выбором?
На данный момент я думаю о чем-то вроде этого:
1. GUI: I have i.e. buttons:
STRATEGY 1 -> start,stop,view status/details, etc.
STRATEGY 2 -> start,stop,view status/details, etc.
STRATEGY 3 -> start,stop,view status/details, etc.
каждая стратегия представляет собой класс, который реализует некоторые основные понятия
class Strategy{ // Template method approach
public:
void start(); // uses subscribeData(), trade()
private:
virtual void subscribeData();
virtual void trade();
boost::shared_ptr<Model> model;
boost::shared_ptr<Data> data;
boost::shared_ptr<Statistics> stats;
};
Таким образом, настоящая, самая важная часть закончится trade()
метод и все
классы стратегии работают на одном и том же экземпляре моего PosixClient
внедрение ИБ EWrapper
с EPosixClientSocket
указатель на него (так один
разъем).
Это правильный подход? У меня есть опыт работы с системами управления рисками (т. Е. Алгоритмикой), но я не видел ни одной реализации коммерческой торговой системы. Можешь дать совет?
Очень хороший вопрос
Я бы порекомендовал разработать каждую стратегию в отдельном модуле / клиенте / JVM.
Ознакомьтесь с Алгоритмической Торговой Платформой AlgoTrader.
Эта структура позволяет вам разрабатывать / развертывать / запускать / останавливать / обновлять стратегии, независимые друг от друга в отдельных JVM. Все они находятся на вершине так называемой базы, которая отвечает за связи с рыночными данными, постоянство в базе данных и размещение заказов у брокера. Различные модули / стратегии могут даже общаться друг с другом через общие события.
Есть две версии AlgoTrader.
Других решений пока нет …