Блог им. id365247

Вопрос программистам. На чём быстрее писать и проверять торговые системы?

Сейчас пишу на MQL, есть демо-аккаунт у брокера с кучей интересных мне тикеров (не только валюта). Т.е. по-сути уже есть инструмент для бэктестов и бонусом бесплатная маркет-дата (я не изучаю HFT, поэтому погрешность тиков от метака меня устраивает). Не устраивает сам язык, очень топорная работа с массивами, устаревшая IDE, отсутствует функциональная парадигма, не редактируемый фронтенд с выводом статистики системы, невозможность применения навыков MQL на международном рынке труда (я программист), поэтому хочу перейти на питон и какой-нибудь quantopian. Но есть вопросы:

1. Изучив эти 2 новые технологии, будет ли выйгрыш во времени написания бэктестов?
2. Хорошо ли дружат quantopian и подобные системы с csv форматом маркет-даты из метака? Меня интересуют 5-15 минутные свечи, поэтому какой-нибудь yahoo finance не подходит. Вообще этот вопрос не кретичен, думаю всегда можно переформатировать в удобный формат или найти другую бесплатную и удобоваримую маркет-дату в другом месте.
3. Есть ли решения на питоне лучше, чем quantopian?

От системы написания бэктестов мне нужно следующее:
0) python-based
1) качественная документация и большое сообщество пользователей
2) высокая скорость движка (для быстрого анализа написанной системы)
3) выходные стат. данные в наглядном виде (средняя длительность сделки, коэф. Шарпа и прочее, что есть в бэктестере метака)
4) и желательно возможность редактировать фронт-енд этих стат. данных, т.е. оставлять только то, что мне нужно или даже свои стат. характеристики выводить.
★6
30 комментариев
Python
Есть ли решения? — не знаю, не интересовался. В Python и так все делается в три прихлопа.
avatar
3Qu, это я понимаю, а какой движок для тестинга систем на питоне лучше? я конечно могу и свой написать, но это будет велосипед и убитое время 
avatar
id365247, я сам себе все пишу. Тестер написать — это ~15 минут — там кроме цикла ничего и нет. А систему по любому самому писать.
А среда, Anaconda (все включено) и Spyder. Eсли нужен ГУИ, то Tk.
avatar
3Qu, 
 Тестер написать — это ~15 минут
не фига себе ))
avatar
Андрей К, вспомните что делает тестер? Подает на вашу ТС последовательность котировок. Это всего лишь цикл — две строчки, ну со всякими прибабахами, пусть, пять, ну, десять строчек. Все. Остальное делает ваша ТС, а это уже может быть действительно сложно.)
avatar
id365247, 
ЗЫ Для архивов котировок и прочего БД SQLite.
Вот так это выглядит.

Это, для прочего.) Запрос какой-то.
avatar
3Qu, скорость чтения из SQLite не сильно уступает прямому чтению из csv? 
avatar
id365247, SQLite даже  без настроек существенно быстрее. Кроме того, все архивы котировок в одном месте. Да и SQL запросами много чего можно сделать, что с csv, ну, никак.)
Вообще, при определенных настройках pragma, по скорости SQLite сравнима со своей же БД в памяти.
Вообще, для тестов это все несущественно, но я ее и реал-тайм в ТС использую, и нормально.
avatar
3Qu, в три прихлопа, пока не столкнешься с dependenсy hell. Даже минорные обновления могут быть обратно несовместимы. 
avatar
deke, уже несколько лет, но не сталкивался. Ничего существенного не было.
avatar
3Qu, я чуть сервер рабочий не положил. Версии самого интерпретатора не совместимы, библиотеки tensorflow не совместимы, а дальше идет цепочка зависимостей. Ставишь одно — слетает другое. Pip не может разрешить конфликты.
Попробовал под Windows 10 запустить Ubuntu и в ней все настроить — сперва заработало, но после перезагрузки получил черный экран.
Плюнул и забыл — С++ наше все.
avatar
deke, не сталкивался. Вроде в Анаконде все синхронизировано. В чистом Питоне, слышал, бывают проблемы с либами.
С++ наше все.
А вот это правильно. Но проблемы с библиотеками, которых под Питон как грязи.
avatar
На языке R  есть примеры тестеров в интернете, данные из Квик качаются элементарно.  Можно простым копированием, можно через LUA.  7.7 Evaluating Trading Rules | Techincal Analysis with R (bookdown.org)
Vladimir Diaditchev, R — абсолютно жуткие — и язык, и среда, и экосистема. Имхо. Еще и оч тягомотные.
Бросайте вы это дело.) На втором месте MQL.))
avatar
3Qu, Понятно, что есть более продвинутые языки. Для статистки вполне достаточно, можно тестировать торговые идеи.  R позволяет получать данные из Квик, Quandl, Yahoo, FRED, Macrotrends, Финама, сайта ЦБ РФ. На R можно экспериментировать с нейросетями, SVM, деревьями, вейвлетами и прочими приблудами. Можно посмотреть, как это работает в почти в реалтайм,  получая поток данных из Квик. Можно анализировать портфели. Есть куча библиотек для этого, несколько строк кода и получаешь результат. 
Квантопиан закрылась, из известных остался квантконнект. Там возможность писать на питоне или C#. Но сами понимаете, что бесплатные серваки не очень мощные. За мощность попросят доплатить от 8 баксов, или тащить Doker к себе на комп. 
Redline, это даже упоминания не стоит=))
Dancing Orange Hyena, Что с ним не так?
avatar
а я бы остался на mql. 
avatar
Андрей К, как говорил Жванецкий — когда другой машины не видел, Запорожец — ВО! машина.
avatar
Я маньяк, поэтому делаю это всё на плюсах :D
avatar
Пиши на русском, большинство  поймут))
avatar
Господа, если вы разбираетесь в программировании, нафига вам трейдинг? Программисты сейчас хорошо зарабатывают. А трейдеры только теряют деньги с умным видом. Я не понимаю…
avatar
InvestorNaDolgo, одно другому не мешает :)
avatar
InvestorNaDolgo, если человек пишет только на MQL, то это не программист :)
InvestorNaDolgo, хочется независимости и проводить время для своей жизни, а не для дяди
avatar
python-based и «высокая скорость движка» — противоречие, однако
avatar
С++ под метатрейдер можно использовать, DLL свою написать, а в C++ возможностей вагон. Кроме того, можно и на шарпе писать если огранизовать сообщения между DLL и аппликухой на шарпе, например через named pipes или сокеты.

теги блога id365247

....все тэги



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