Ответы на вопросы

Ответы на вопросы | Какой язык программирования выбрать для торговой системы? Хочу выгрузить исторические данные из Quik, проверить парочку гипотез, потом реализовать систему сигналов на buy\sell.

Какой язык программирования выбрать для торговой системы? Хочу выгрузить исторические данные из Quik, проверить парочку гипотез, потом реализовать систему сигналов на buy\sell.
★2
30 комментариев
О себе: программист, но не связан с трейдингом. Немного работал с R, так что его в первую очередь рассматриваю.

Интересуют какие-нибудь тематические статьи с «best practises» чтобы иметь какую-то базу для начала. Как выгружать данные из Quik, как транслировать данные в реальном времени, простейшие примеры работы с данными.

Как красиво отображать сигналы на покупку\продажу прямо на графике цен.

Вообщем нужен FAQ как первоначально настроить все это дело, какие библиотеки удобные есть для трейдеров, дальше уже сам разберусь с языком программирования и документацией.
avatar
Котировки есть на сайте финама.
Понимание всего остального придет лишь с опытом своей торговли.
avatar
Translator, да я уже торгую. Стратегия есть, просто хочу дополнительно обрабатывать данные своими алгоритмами и проверить пару гипотез.
avatar
Честно говоря даже лень рассказывать. Настолько часто вопросы встречаются и тут и в интернете.
avatar
Андрей К, вопросы встречаются от людей, которые максимум в Excel сумму по столбцу посчитать смогут, и отвечают им соотв.

А мне нужно просто пару ссылочек, с «лучшими практиками» на тему, чтобы я мог базу откуда-то взять, а дальше доработать под свои желания.
avatar
KeeperRU,  1) вы можете скачать исторические котировки с сайта finam и mfd и обрабатывать (либо проверить свои идеи)
2) вы можете в реальном времени выгружать данные через odbc и dde с квика.
3) графически красиво оформлять сигналы вы можете через qlua с помощью графических меток на графике
4) так же сигналы можно оформлять в виде своего индикатора на qlua
5) выгружать данные не обязательно, если алгоритм простой, вы просто можете воплотить его на qlua и не придется никуда выгружать данные. Обрабатывайте их в реальном времени.
avatar
Андрей К, я почитал что LUA подойдет лучше всего, по скорости и функциям, без посредника в лице Excel.

Нашел пару уроков, посмотрим как пойдет. Жалко конечно, что никто не посоветовал конкретных уроков.

Для начала поставлю себе такую простую задачу:
Анализ объемов сделок по 1 инструменту. Выдавать сигнал если: объем превышает медиану объемов за прошлые N периодов. Проверить нужно на таймфреймах: 15 минут, 1 час, 4 часа, день.
avatar
KeeperRU, ваш алго легко ложится на qlua. Честно говоря, я не знаю какие уроки посоветовать. Я привык, что программист читает мануал по языку и легко на него переходит. Мануал на сайте квика подробный.
avatar
Андрей К, полностью согласен. Автору — не хватит мощности или скорости — найдете в интернете материалы про внутреннюю кухню LUA и стыки с другими языками в рамках QUIK. Я сделал такой выбор.
Андрей К, тут дело не в изучении языка, а в том чтобы к API Quik присосаться правильно. Только если я знаю, как написать цикл на LUA, но не понимаю как открывать\закрывать connection к Квику и какую среду разработки выбрать.

Поясню, я обычно изучаю языки программирования так: нахожу пример простейший, ставлю среду разработки, пытаюсь запустить пример. Мне нужно в живую посмотреть\пощупать среду, чтобы прочувствовать её.

Далее когда я уже убедился, что хотя бы «Hello Wold» запускается, я начинаю серьезно читать документацию, изучаю особенности языка и прочее.  
avatar
KeeperRU, я бы не стал сейчас реализовывать «открывать\закрывать connection к Квику». Это задача не совсем простая для начала. Я бы все таки:
1) обкатал свою идею на сторонних тестерах: mt5, tslab (тестирование бесплатно) и тд
2) реализовал бы систему сигналов на основе тестов в реальном режиме на qlua
avatar
Андрей К, 
меня смущает что в qlua нет отладчика стандартного, даже если я проверю свою идею на tslab, «перенесу» ее на Qlua, то могут вылезти ошибки в момент переноса кода.

Есть какие-то сторонние отладчики, но ковырять их отдельный геморр скорее всего)
avatar
KeeperRU, запрограммируйте логирование его работы и не включайте в работу входы в сделку. Если по логам через пару недель все нормально работает, то можно запускать в боевой торговый режим.
avatar
KeeperRU, это элементарная задача. Любую программу можно брать:  1.Wealthlab,  2.TSlab,  3.Amibroker,  4.Metatrader5. По любой из них море информации в сети. Если с нуля, то однозначно TSlab — там программирование не обязательно знать. Скачайте пробник с оф.сайта — на нем тестирование бесплатно. Посмотрите обучающите уроки. И уже сегодня вечером сделаете и протестируете свою «систему» из «кубиков». Если заходите запустить робота в реальные торги — 1600 руб. в месяц у большинства брокеров за TSlab.

Если делать на Qlua, то в Quik нет тестировщика. По любому придется сначала присать на любой из указанных выше, тестировать и потом переписывать на Qlua.
avatar
vito2000, в QLUA нет дебагера? Вот это поворот) Платить 1600 руб. в месяц просто за анализ прошлых периодов как-то не хочется, торговый робот который торгует за меня — мне не нужен). Почитаю про остальные варианты…
avatar
KeeperRU, 
1. В Quik тестировщика стратегий нет.
2. Платить 1600 руб. в месяц  за TSlab, если торгуете. Тестирование  в TSLab бесплатно.
avatar
При такой постановке вопроса выбор языка вообще вторичен. Иными словами это не имеет значения.
avatar
Так же для проверки идей, возможно имеет смысл оформить себе mt5 и обкатать их там на mql. Так в массе случаев будет намного быстрее. Не думаю, что у вас узкоспециализированный алгоритм (например обработка тиков)
avatar
QUIK одномоментно дает доступ только к 3-4-5 тысячам свечек. Поэтому, либо самому их начать накапливать из QUIKа, если при работе будет нужна длинная история, либо воспользоваться доступными историческими данными из других источников. Для внешнего обсчета истории — любой удобный язык, я сейчас пользуюсь C++. 

При реальной работе в QUIK для большинства приложений скорее всего будет достаточно расширения LUA для QUIK — QLUA. В документации на QUIK есть информация.

Для отображения сигналов вполне можно использовать механизм меток, но можно сделать и свой полноценный индикатор, как и штатные. 
 
Борис Гудылин (bgoud), 
Я думаю для начала хватит 3-5 тысяч свечей. Для часового графика это данные за целый год и даже больше. А если понадобится анализировать сезонность, тогда да… придется искать другие источники данных.

Посмотрю документацию QUIK спасибо.
avatar
Python.
avatar
Самые простые два варианта это либо 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

так что все можно реализовать и так и эдак
avatar
AlexeyT, начну пока с LUA, если не зайдет — попробую R.

Спасибо всем) Плюсики пока ставить не могу.
avatar
R имеет ряд недостатков для невекторизованных стратегий в которых логика зависит от позиции например. такие вещи тестирубтся только loop-ом по данным и вы сразу проседаете по скорости тестирования по сравннию с .Net или python. дополнительно хочется отметить что в R интерактивные графики (с своими индикаторами эквити и прочими плюшками) придется строить самому и с бубном. Есть библиотеки аля квантлиб но в них минус — слабая кастомизируемость, заточенность под daily данные и тп


Так что учтите это в своей разработке. Если вы строите свой анализ на data mining approach (вектор входов вектор выходов, data.frame ) или у вас все прям все векторизованно то ок, в противном случае могут возникнуть некоторые трудности на преодоление которых уйдет лишнее время

avatar
 ну и в догонку, если в целом если вы не улетаете за  минутные таймфреймы (живете на более высоких таймфреймах) то  конечно многое что я сказал перестает быть актуальном, хотя запуск ацкой оптимизации за год на 1 минутных срезах — займет значительное время там где какой-нить .Net справился б за 1-10s
avatar
ibm watson, 15 минутные ТФ пока минимум что меня интересует, а так 1ч, 4ч, День.
avatar
KeeperRU, примерился к задачке. Написал в виде индикатора QUIK. Выложил здесь.


yadi.sk/d/EPpvKmlakfWnU

  Создаем в каталог QUIK подкаталог Luaindicators, переносим туда файл !volmid.lua. Берем любой инструмент, в окно объема добавляем индикатор (!volmid). В списке он будет где-то вверху. Лучше на минутках. Смотрим на поведение. Period для начала лучше взять равным 1.
Борис Гудылин (bgoud), спасибо сейчас посмотрю.

Кстати какую среду разработки выбрать, с ништяками типа подсветкой синтаксиса ит.д.? Через блокнот мне пока рано писать.
avatar
Для проверки синтаксиса — SciTE, да и обычными возможностями FAR пользуюсь, кому что удобнее, не заморачиваюсь. Я ко всему могу приспособиться.
неплохая заметка:
habrahabr.ru/company/itinvest/blog/271493/
avatar

теги блога KeepChain

....все тэги



UPDONW
Новый дизайн