Добрый день, уважаемые смартлабовцы!
Хочу поделиться с вами новостями о грядущих изменениях в QuikOrdersDOM и подходах к разработке новых программ ttools.ru
В настоящее время
QuikOrdersDOM — это программа для быстрого ввода заявок для терминала Quik (скальперский привод). Корме того, QuikOrdersDOM — это платформа для торговых автоматов (модулей автотрейдинга), которые могут быть реализованы любым независимым разработчиком. Также уже реализованы
торговые автоматы и индикаторы в виде модулей автотрейдинга. Пришло время сделать следующий логический шаг в эволюции средств автоматизации биржевой торговли
ttools.ru: QuikOrdersDOM будет разделен на платформу для модулей автотрейдинга и скальперский привод, реализованный, как модуль автотрейдинга. Кроме того, платформа (точка подключения) станет заменяемым модулем, который также может быть реализован любым разработчиком по описанным правилам реализации. Для любого способа подключения к биржевым торгам (терминалам, протоколу Plaza2, FIX, и другим) будет возможно реализовать (и будет реализовано) платформу, с которой будет работать QuikOrdersDOM и другие модули автотрейдинга. Дистрибутивы и документация будут доступны в ближайшее время.
Удачной торговли и больших профитов! Торговый алгоритм (модуль автотрейдинга qSDK, qSDKTrader) Модуль, осуществляющий анализ рыночных данных и принятие торговых решений. Взаимодействует с точкой подключения посредством функций qSDK для получения рыночных данных и отправки транзакций. Должен быть реализован по правилам реализации модуля автотрейдинга qSDK в виде dll библиотеки, экспортирующей обязательные функции инициализации, основного цикла, функции завершения работы и необязательные функции настройки параметров модуля и информационного сообщения.
Точка подключения qSDK (QConnectionPoint) Модуль, реализующий правила и функции qSDK, вызываемые торговым алгоритмом для конкретного способа подключения к биржевым торгам (биржевой терминал, протокол FAST|FIX, Plaza2, и т.д…). Точка подключения обеспечивает прозрачную работу и независимость кода торгового алгоритма от физического способа взаимодействия клиентской торговой системы с биржевой инфраструктурой. Точка подключения должна быть реализована в соответствии с правилами реализации модуля точки подключения, в виде dll библиотеки, экспортирующей обязательные функции инициализации, основного цикла, функции завершения работы.
Драйвер точки подключения qSDK (QCPDriver) Модуль, обеспечивающий совместную работу торгового алгоритма и точки подключения. Реализуется по правилам реализации драйвера точки подключения qSDK в виде исполняемого файла. Модуль должен запустить функцию инициализации точки подключения, функцию инициализации модуля автотрейдинга в фазе инициализации работы системы, обеспечить непрерывный поочередный вызов функции основного цикла точки подключения и функции основного цикла модуля автотрейдинга в фазе основного цикла работы системы и вызвать поочередно функции завершения работы модуля автотрейдинга и точки подключения в фазе завершения работы системы. Может иметь графический интерфейс для запуска, остановки и настройки режима совместной работы модулей.
Роутер qSDK (qSDKRouter) Модуль, обеспечивающий совместную работу торгового алгоритма и нескольких точек подключения. Является частным (расширенным) случаем драйвера точки подключения. Используется для одновременной работы на нескольких рынках (например, в арбитражных торговых алгоритмах) Реализуется по правилам реализации драйвера точки подключения qSDK в виде исполняемого файла. Модуль должен поочередно запустить функции инициализации всех точек подключения, функцию инициализации модуля автотрейдинга в фазе инициализации работы системы, обеспечить непрерывный поочередный вызов функций основного цикла точек подключения и функции основного цикла модуля, а также маршрутизацию вызовов qSDK для различных точек подключения, в соответствии с настройками маршрутов автотрейдинга в фазе основного цикла работы системы и вызвать функцию завершения работы модуля автотрейдинга и поочередно функции завершения работы точки подключения в фазе завершения работы системы. Может иметь графический интерфейс для запуска, остановки и настройки режима совместной работы модулей.
qSDK в QuikOrdersDOM существует дольше стокшарпа и тслаба. Теперь qSDK можно будет использовать без QuikOrdersDOM
Если быть точнее, QuikOrdersDOM работает с большим списком версий Quik, но не выше версии 5.18. Связано это с тем, что способ получения информациии из QUIK (прямое чтение памяти) был выбран быстрый, удобный с точки зрения настройки софта, но не стандартный для QUIK. Стандартные способы обмена (DDE, ODBC) до сих пор являются чуть более медленными и самое главное неудобными в настройке (вспомните, как приходится настраивать экспорт DDE или ODBC из квик).
Использование этого способ требует большой работы при выпуске каждой новой версии Quik, а начиная с версии 5.18. структура данных в Quik поменялась существенно и адаптация потребовала бы еще большей работы, на что я не был готов пойти. Сейчас все QUIK брокеры могут работать с 5.17 версией клиента QUIK, поэтому было принято решение пока оставить всё как есть (проблем при работе с 5.17 нет, на ttools.ru можно также скачать дистрибутив, содержащий необходимую версию). В недалеком будущем появится точка подключения, позволяющая использовать стандартный способ обмена через DDE(да, в ней будут все «достоинства» настройки экспорта по DDE), которая будет работать с любой версией Quik
в чем приемущества не знаю, это надо сравнивать, может кто-то сравнит когда-нибудь. Могу только сказать о приоритетах разработки: открытая архитектура, поддержка и основное ориентирование на больше трейдера, чем на разработчика
>поддержка старой (5.18) версии терминала — путь в никуда…
путь — это поддержка не только 5.18, а всех остальных версий одним махом
Чтение из памяти Квика — это смех сквозь слезы. Какие скорости при Квике?
а) QuikOrdersDOM бесплатный, прежде чем писать надо бы выяснить, не так ли?
б) архитектура открытая, все протоколы и правила разработки документированы. Код закрытый (Чего ради он должен быть открытым? Пишите свой и делайте каким хотите)
в) язык программирования для разработки модуля может быть абсолютно любой, который способен скомпилировать обычную Windows dll-библиотеку, без использования дополнительных платформ, фреймворков, COM-серверов, SQL-серверов и прочего лишнего софта
г) Чтение памяти квик это максимально быстрый способ при работе с квик при нулевых расходах на инфраструктуру. Как бы вам не хотелось плакать, для некоторых торговых автоматов это оптимально по соотношению расходы/скорость
Язык любой? Ява, СиШарп? Поддерживается только старье.
Еще раз про скорость. Если нужна скорость — выбирать нужно не Квик.
простите, не понял, что вы имели ввиду под «нормально без версии Плюс это работать не будет»? пакет QuikOrdersDOM+?
QuikOrdersDOM работать нормально будет без плюса. А QuikOrdersDOM+ это больше, чем QuikOrdersDOM, это дополнительный пакет с дополнительными средствами автоматизации, которые продаются за деньги.
Я не писал про любой язык, читайте внимательно: любой компилятор, способный генерировать обычную dll, то, что вы перечислили не является таковым, и не являются эти вещи абсолютно позитивными, для них необходимо тащить платформу плюс интерпретируемые языки не быстрее компилируемых
можно не обновлять версию QUIK для торговли, а когда появится DDE-версия платформы можно перейти на нее