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

★2
ВНИМАНИЕ! КОММЕНТАРИИ ПЕРВОГО УРОВНЯ В ВОПРОСАХ УПОРЯДОЧИВАЮТСЯ ПО ЧИСЛУ ПЛЮСИКОВ, А НЕ ПО ВРЕМЕНИ ПУБЛИКАЦИИ.
О себе: программист, но не связан с трейдингом. Немного работал с R, так что его в первую очередь рассматриваю.

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

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

Вообщем нужен FAQ как первоначально настроить все это дело, какие библиотеки удобные есть для трейдеров, дальше уже сам разберусь с языком программирования и документацией.
avatar
QUIK одномоментно дает доступ только к 3-4-5 тысячам свечек. Поэтому, либо самому их начать накапливать из QUIKа, если при работе будет нужна длинная история, либо воспользоваться доступными историческими данными из других источников. Для внешнего обсчета истории — любой удобный язык, я сейчас пользуюсь C++. 

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

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

Посмотрю документацию QUIK спасибо.
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. Я сделал такой выбор.
avatar
Андрей К, тут дело не в изучении языка, а в том чтобы к 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
Так же для проверки идей, возможно имеет смысл оформить себе mt5 и обкатать их там на mql. Так в массе случаев будет намного быстрее. Не думаю, что у вас узкоспециализированный алгоритм (например обработка тиков)
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
Котировки есть на сайте финама.
Понимание всего остального придет лишь с опытом своей торговли.
avatar
Translator, да я уже торгую. Стратегия есть, просто хочу дополнительно обрабатывать данные своими алгоритмами и проверить пару гипотез.
avatar
При такой постановке вопроса выбор языка вообще вторичен. Иными словами это не имеет значения.
avatar
Python.
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.
avatar
Борис Гудылин (bgoud), спасибо сейчас посмотрю.

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

Только зарегистрированные и авторизованные пользователи могут оставлять ответы.

Залогиниться

Зарегистрироваться

теги блога KeepChain

....все тэги



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