Какой язык программирования выбрать для торговой системы?
Хочу выгрузить исторические данные из Quik, проверить парочку гипотез, потом реализовать систему сигналов на buy\sell.
ВНИМАНИЕ! КОММЕНТАРИИ ПЕРВОГО УРОВНЯ В ВОПРОСАХ УПОРЯДОЧИВАЮТСЯ ПО ЧИСЛУ ПЛЮСИКОВ, А НЕ ПО ВРЕМЕНИ ПУБЛИКАЦИИ.
О себе: программист, но не связан с трейдингом. Немного работал с R, так что его в первую очередь рассматриваю.
Интересуют какие-нибудь тематические статьи с «best practises» чтобы иметь какую-то базу для начала. Как выгружать данные из Quik, как транслировать данные в реальном времени, простейшие примеры работы с данными.
Как красиво отображать сигналы на покупку\продажу прямо на графике цен.
Вообщем нужен FAQ как первоначально настроить все это дело, какие библиотеки удобные есть для трейдеров, дальше уже сам разберусь с языком программирования и документацией.
QUIK одномоментно дает доступ только к 3-4-5 тысячам свечек. Поэтому, либо самому их начать накапливать из QUIKа, если при работе будет нужна длинная история, либо воспользоваться доступными историческими данными из других источников. Для внешнего обсчета истории — любой удобный язык, я сейчас пользуюсь C++.
При реальной работе в QUIK для большинства приложений скорее всего будет достаточно расширения LUA для QUIK — QLUA. В документации на QUIK есть информация.
Для отображения сигналов вполне можно использовать механизм меток, но можно сделать и свой полноценный индикатор, как и штатные.
Борис Гудылин (bgoud),
Я думаю для начала хватит 3-5 тысяч свечей. Для часового графика это данные за целый год и даже больше. А если понадобится анализировать сезонность, тогда да… придется искать другие источники данных.
KeeperRU, 1) вы можете скачать исторические котировки с сайта finam и mfd и обрабатывать (либо проверить свои идеи)
2) вы можете в реальном времени выгружать данные через odbc и dde с квика.
3) графически красиво оформлять сигналы вы можете через qlua с помощью графических меток на графике
4) так же сигналы можно оформлять в виде своего индикатора на qlua
5) выгружать данные не обязательно, если алгоритм простой, вы просто можете воплотить его на qlua и не придется никуда выгружать данные. Обрабатывайте их в реальном времени.
Андрей К, я почитал что LUA подойдет лучше всего, по скорости и функциям, без посредника в лице Excel.
Нашел пару уроков, посмотрим как пойдет. Жалко конечно, что никто не посоветовал конкретных уроков.
Для начала поставлю себе такую простую задачу:
Анализ объемов сделок по 1 инструменту. Выдавать сигнал если: объем превышает медиану объемов за прошлые N периодов. Проверить нужно на таймфреймах: 15 минут, 1 час, 4 часа, день.
KeeperRU, ваш алго легко ложится на qlua. Честно говоря, я не знаю какие уроки посоветовать. Я привык, что программист читает мануал по языку и легко на него переходит. Мануал на сайте квика подробный.
Андрей К, полностью согласен. Автору — не хватит мощности или скорости — найдете в интернете материалы про внутреннюю кухню LUA и стыки с другими языками в рамках QUIK. Я сделал такой выбор.
Андрей К, тут дело не в изучении языка, а в том чтобы к API Quik присосаться правильно. Только если я знаю, как написать цикл на LUA, но не понимаю как открывать\закрывать connection к Квику и какую среду разработки выбрать.
Поясню, я обычно изучаю языки программирования так: нахожу пример простейший, ставлю среду разработки, пытаюсь запустить пример. Мне нужно в живую посмотреть\пощупать среду, чтобы прочувствовать её.
Далее когда я уже убедился, что хотя бы «Hello Wold» запускается, я начинаю серьезно читать документацию, изучаю особенности языка и прочее.
KeeperRU, я бы не стал сейчас реализовывать «открывать\закрывать connection к Квику». Это задача не совсем простая для начала. Я бы все таки:
1) обкатал свою идею на сторонних тестерах: mt5, tslab (тестирование бесплатно) и тд
2) реализовал бы систему сигналов на основе тестов в реальном режиме на qlua
Андрей К,
меня смущает что в qlua нет отладчика стандартного, даже если я проверю свою идею на tslab, «перенесу» ее на Qlua, то могут вылезти ошибки в момент переноса кода.
Есть какие-то сторонние отладчики, но ковырять их отдельный геморр скорее всего)
KeeperRU, запрограммируйте логирование его работы и не включайте в работу входы в сделку. Если по логам через пару недель все нормально работает, то можно запускать в боевой торговый режим.
KeeperRU, это элементарная задача. Любую программу можно брать: 1.Wealthlab, 2.TSlab, 3.Amibroker, 4.Metatrader5. По любой из них море информации в сети. Если с нуля, то однозначно TSlab — там программирование не обязательно знать. Скачайте пробник с оф.сайта — на нем тестирование бесплатно. Посмотрите обучающите уроки. И уже сегодня вечером сделаете и протестируете свою «систему» из «кубиков». Если заходите запустить робота в реальные торги — 1600 руб. в месяц у большинства брокеров за TSlab.
Если делать на Qlua, то в Quik нет тестировщика. По любому придется сначала присать на любой из указанных выше, тестировать и потом переписывать на Qlua.
vito2000, в QLUA нет дебагера? Вот это поворот) Платить 1600 руб. в месяц просто за анализ прошлых периодов как-то не хочется, торговый робот который торгует за меня — мне не нужен). Почитаю про остальные варианты…
Так же для проверки идей, возможно имеет смысл оформить себе mt5 и обкатать их там на mql. Так в массе случаев будет намного быстрее. Не думаю, что у вас узкоспециализированный алгоритм (например обработка тиков)
Самые простые два варианта это либо Excel с VBA или R
1. Если рассматривать первый вариант, то делаете экспорт в Excel и на VBA пишете код который будет он-лайн что-то проверять и выдавать сигнал
2. Если с R то либо забираете данные из открытых источников (mfd, finam) или же тоже через Quik который будет писать или в файлы или в БД, и оттуда уже читаете R, и снова все проверяете.
Достоинства Excel+VBA что достаточно прозрачно и понятно,
а достоинство с R что есть фин. пакеты в которых уже много чего реализовано.
Так мой робот-советник работает по первому варианту smart-lab.ru/blog/175461.php
а на R сделан анализ сделок ЛЧИ smart-lab.ru/blog/281094.php
R имеет ряд недостатков для невекторизованных стратегий в которых логика зависит от позиции например. такие вещи тестирубтся только loop-ом по данным и вы сразу проседаете по скорости тестирования по сравннию с .Net или python. дополнительно хочется отметить что в R интерактивные графики (с своими индикаторами эквити и прочими плюшками) придется строить самому и с бубном. Есть библиотеки аля квантлиб но в них минус — слабая кастомизируемость, заточенность под daily данные и тп
Так что учтите это в своей разработке. Если вы строите свой анализ на data mining approach (вектор входов вектор выходов, data.frame ) или у вас все прям все векторизованно то ок, в противном случае могут возникнуть некоторые трудности на преодоление которых уйдет лишнее время
ну и в догонку, если в целом если вы не улетаете за минутные таймфреймы (живете на более высоких таймфреймах) то конечно многое что я сказал перестает быть актуальном, хотя запуск ацкой оптимизации за год на 1 минутных срезах — займет значительное время там где какой-нить .Net справился б за 1-10s
Создаем в каталог QUIK подкаталог Luaindicators, переносим туда файл !volmid.lua. Берем любой инструмент, в окно объема добавляем индикатор (!volmid). В списке он будет где-то вверху. Лучше на минутках. Смотрим на поведение. Period для начала лучше взять равным 1.
Интересуют какие-нибудь тематические статьи с «best practises» чтобы иметь какую-то базу для начала. Как выгружать данные из Quik, как транслировать данные в реальном времени, простейшие примеры работы с данными.
Как красиво отображать сигналы на покупку\продажу прямо на графике цен.
Вообщем нужен FAQ как первоначально настроить все это дело, какие библиотеки удобные есть для трейдеров, дальше уже сам разберусь с языком программирования и документацией.
При реальной работе в QUIK для большинства приложений скорее всего будет достаточно расширения LUA для QUIK — QLUA. В документации на QUIK есть информация.
Для отображения сигналов вполне можно использовать механизм меток, но можно сделать и свой полноценный индикатор, как и штатные.
Я думаю для начала хватит 3-5 тысяч свечей. Для часового графика это данные за целый год и даже больше. А если понадобится анализировать сезонность, тогда да… придется искать другие источники данных.
Посмотрю документацию QUIK спасибо.
А мне нужно просто пару ссылочек, с «лучшими практиками» на тему, чтобы я мог базу откуда-то взять, а дальше доработать под свои желания.
2) вы можете в реальном времени выгружать данные через odbc и dde с квика.
3) графически красиво оформлять сигналы вы можете через qlua с помощью графических меток на графике
4) так же сигналы можно оформлять в виде своего индикатора на qlua
5) выгружать данные не обязательно, если алгоритм простой, вы просто можете воплотить его на qlua и не придется никуда выгружать данные. Обрабатывайте их в реальном времени.
Нашел пару уроков, посмотрим как пойдет. Жалко конечно, что никто не посоветовал конкретных уроков.
Для начала поставлю себе такую простую задачу:
Анализ объемов сделок по 1 инструменту. Выдавать сигнал если: объем превышает медиану объемов за прошлые N периодов. Проверить нужно на таймфреймах: 15 минут, 1 час, 4 часа, день.
Поясню, я обычно изучаю языки программирования так: нахожу пример простейший, ставлю среду разработки, пытаюсь запустить пример. Мне нужно в живую посмотреть\пощупать среду, чтобы прочувствовать её.
Далее когда я уже убедился, что хотя бы «Hello Wold» запускается, я начинаю серьезно читать документацию, изучаю особенности языка и прочее.
1) обкатал свою идею на сторонних тестерах: mt5, tslab (тестирование бесплатно) и тд
2) реализовал бы систему сигналов на основе тестов в реальном режиме на qlua
меня смущает что в qlua нет отладчика стандартного, даже если я проверю свою идею на tslab, «перенесу» ее на Qlua, то могут вылезти ошибки в момент переноса кода.
Есть какие-то сторонние отладчики, но ковырять их отдельный геморр скорее всего)
Если делать на Qlua, то в Quik нет тестировщика. По любому придется сначала присать на любой из указанных выше, тестировать и потом переписывать на Qlua.
1. В Quik тестировщика стратегий нет.
2. Платить 1600 руб. в месяц за TSlab, если торгуете. Тестирование в TSLab бесплатно.
1. Если рассматривать первый вариант, то делаете экспорт в Excel и на VBA пишете код который будет он-лайн что-то проверять и выдавать сигнал
2. Если с R то либо забираете данные из открытых источников (mfd, finam) или же тоже через Quik который будет писать или в файлы или в БД, и оттуда уже читаете R, и снова все проверяете.
Достоинства Excel+VBA что достаточно прозрачно и понятно,
а достоинство с R что есть фин. пакеты в которых уже много чего реализовано.
Так мой робот-советник работает по первому варианту
smart-lab.ru/blog/175461.php
а на R сделан анализ сделок ЛЧИ
smart-lab.ru/blog/281094.php
так что все можно реализовать и так и эдак
Спасибо всем) Плюсики пока ставить не могу.
Понимание всего остального придет лишь с опытом своей торговли.
Так что учтите это в своей разработке. Если вы строите свой анализ на data mining approach (вектор входов вектор выходов, data.frame ) или у вас все прям все векторизованно то ок, в противном случае могут возникнуть некоторые трудности на преодоление которых уйдет лишнее время
yadi.sk/d/EPpvKmlakfWnU
Создаем в каталог QUIK подкаталог Luaindicators, переносим туда файл !volmid.lua. Берем любой инструмент, в окно объема добавляем индикатор (!volmid). В списке он будет где-то вверху. Лучше на минутках. Смотрим на поведение. Period для начала лучше взять равным 1.
Кстати какую среду разработки выбрать, с ништяками типа подсветкой синтаксиса ит.д.? Через блокнот мне пока рано писать.
habrahabr.ru/company/itinvest/blog/271493/
Только зарегистрированные и авторизованные пользователи могут оставлять ответы.
Залогиниться
Зарегистрироваться