После изучения возможностей Wealth-Lab по созданию торговых стратегий и получения практического результата в виде готового кода оттестированной, оптимизированной и генерирующей алерты торговой стратегии, неизбежно возникнет вопрос об автоматизации подачи торговых сигналов брокеру.
Т.е. как это громко не звучит — мы должны задуматься о создании торгового робота.
Задачи, которые решает торговый робот:
Торговый робот — это программа, либо совокупность программ, которые решают следующие задачи:
1) Автоматизация создания алертов.
Алерт — это торговый сигнал, который сигнализирует о необходимости отправить торговый приказ указанного типа в систему.
2) Автоматизация передачи торговых ордеров на сервер брокера.
Как только появился торговый алерт — это должно приводить к мгновенной генерации торгового ордера нужного формата и этот ордер без малейших задержек должен уйти к брокеру, став таким образом торговым приказом.
3) Автоматизация получения обратной связи от брокера, т.е. анализ результатов исполнения торговых приказов.
Мало просто отправить торговый приказ на сервер брокера. Нужно еще получить хотя бы малейшую информацию о том, исполнился ли этот приказ, успешно ли он исполнился, сколько лотов из общего количества переданных выполнено и по какой цене. В общем, в точности с теорией управления, нужно получать от объекта, которым ты управляешь обратную связь.
4) Анализ состояния активов на брокерском счете в разрезе разных торговых стратегий.
Активы в данном случае — это совокупность денежных средств и открытых позиций (акций, фьючерсных и опционных контрактов).
Способы решения задач по автоматизации торговли
Первый этап на пути торгового робота мы уже прошли — Wealth-Lab умеет анализировать данные и генерировать алерты. Но даже здесь хорошо бы сделать так, чтобы исходные данные о цене финансовых инструментов мы получали автоматически. А как же нам решать следующие задачи?
1. Ручное управление процессом.
Конечно же, после генерирования алертов, торговые приказы можно отдавать брокеру руками, особенно если
разработанная торговая стратегия не высокочастотная и предполагает создание нового приказа не чаще нескольких раз в день. После этого сами контролируем исполнились ли заявки, к каким результатам это привело и т.п.
Однако это не наш путь. Совершенно не хочется весь день проводить перед компьютером и скрупулезно вести записи как клерк в скучном учреждении.
Трейдинг тем и хорош, что позволяет самому выполнять только творческую, интересную работу, а рутинные операции (приложив некоторые усилия) автоматизировать.
2. Создание собственной программы, взаимодействующей с брокером.
Если Вы хотите заняться творчеством — попробуйте с помощью языка программирования C# и вспомогательных средств (например, библиотеки Stock#, разработанной Михаилом Суховым и товарищами) создать собственную программу, которая подключается к брокеру, следит за базами данных, отдает и контролирует приказы.
Даже на первый взгляд проблема непростая — нужно будет решать кучу вопросов и обладать хорошими знаниями программирования. В общем, времени это отберет довольно много — хотя для тех, кто готов разбираться и учиться, — не самый плохой вариант.
Как результат в такой программе можно запрограммировать ту стратегию, которую мы нашли, запрограммировали, протестировали и оптимизировали в программе Wealth-Lab. В этом случае Wealth-Lab в автоматизации вообще не участвует, мы используем ее только как средство создания и тестирования торговых стратегий.
3. Использование готовых программ
Этот вариант довольно похож на предыдущий, только здесь мы используем для автоматизации процессов не программу собственной разработки, а программы сторонних разработчиков, которые уже существуют. При этом всеми вопросами подключения к брокеру, исправления ошибок, сопровождения занимаются разработчики и службы сервиса таких программ.
Примером использование сторонней программы могут служить такие программы, как
TSLab и TradeMatic.
4. Автоматическая торговля на российских биржах прямо из Wealth-Lab
Сразу скажу, что те пользователи программы Wealth-Lab, которые находятся в США и Канаде пользуются версией «Pro» и имеют такую возможность по умолчанию. Wealth-Lab Pro уже полностью интегрирована с торговой системой брокера Fidelity. Они автоматически получают как данные о ценах, так и фундаментальные данные, отдают приказы брокеру прямо из программы, отслеживают свои позиции и реальную эффективность торговых стратегий.
А что касается пользователей, которые находятся за пределами США (в т.ч. в России) — здесь ситуация несколько сложнее. Программа, которая продается здесь имеет название Wealth-Lab Developer. Продажей этой версии Wealth-Lab занимается компания MS123 LLC (по лицензии Fidelity). Функционально Wealth-Lab Developer ничем не отличается от Wealth-Lab Pro. Единственное отличие — нет интеграции с брокером Fidelity — да эта интеграция нам и не нужна.
Хорошо бы, чтобы Wealth-Lab была интегрирована именно с тем брокером, к которому мы уже привыкли, но позаботиться об этом нужно самостоятельно.
Давайте сразу же упомяну о том, что нужно сделать для интеграции Велса с Вашим брокером и полной автоматизации торговли с помощью программы Wealth-Lab:
Нужно создать 3 провайдера:
- Static Data Provider - его главная задача - получение исторических данных котировок для тестирования стратегий.
- Realtime Data Provider - организует поставку потоковых (реал-тайм) данных в стратегию Wealth-Lab.
- Broker Adapter - должен в процессе реальных торгов выставлять через заявки на биржу, отслеживать текущее состояние выставленных заявок и синхронизировать исполненные заявки с Wealth-Lab.
Сложность здесь есть только в создании брокер-адаптера.
Дело в том, что официальная позиция Fidelity — не поддерживать разработку чужих брокер-адаптеров. Только свой и только для США и Канады (где Fidelity и представлена). Разработчикам остается только выполнять указания.
В принципе, разработчики Велса не против, если кто-то методом тыка делает брокер-адаптер, но вот консультаций и техподдержки по этому вопросу (из-за Фиделити) не оказывают.
«Подсмотреть» реализацию класса брокер-адаптера — не сложно. Проблема в том, чтобы его грамотно реализовать. Например, для поддержки «торговли на бумаге» нужно реализовывать методы, которых нет в спецификации.
Здесь возможны 3 варианта:
- Связка старой версии Велс-Лаб (Wealth-Lab Developer 4) с торговой программой Квик
- Связка Wealth-Lab .NET с Квиком с помощью Zerich Algo Trading
- Связка Quik с Wealth-Lab 6.3 с помощью брокер адаптера от Real- Time Trading
Продолжение статьи о связке Wealth-Lab 6.3 c Квиком
смотрите на моем блоге...