id365247
id365247 личный блог
14 мая 2021, 20:28

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

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

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

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

        Это, для прочего.) Запрос какой-то.
          • 3Qu
            14 мая 2021, 22:13
            id365247, SQLite даже  без настроек существенно быстрее. Кроме того, все архивы котировок в одном месте. Да и SQL запросами много чего можно сделать, что с csv, ну, никак.)
            Вообще, при определенных настройках pragma, по скорости SQLite сравнима со своей же БД в памяти.
            Вообще, для тестов это все несущественно, но я ее и реал-тайм в ТС использую, и нормально.
    • deke
      14 мая 2021, 21:32
      3Qu, в три прихлопа, пока не столкнешься с dependenсy hell. Даже минорные обновления могут быть обратно несовместимы. 
      • 3Qu
        14 мая 2021, 22:17
        deke, уже несколько лет, но не сталкивался. Ничего существенного не было.
        • deke
          15 мая 2021, 23:30
          3Qu, я чуть сервер рабочий не положил. Версии самого интерпретатора не совместимы, библиотеки tensorflow не совместимы, а дальше идет цепочка зависимостей. Ставишь одно — слетает другое. Pip не может разрешить конфликты.
          Попробовал под Windows 10 запустить Ubuntu и в ней все настроить — сперва заработало, но после перезагрузки получил черный экран.
          Плюнул и забыл — С++ наше все.
          • 3Qu
            15 мая 2021, 23:35
            deke, не сталкивался. Вроде в Анаконде все синхронизировано. В чистом Питоне, слышал, бывают проблемы с либами.
            С++ наше все.
            А вот это правильно. Но проблемы с библиотеками, которых под Питон как грязи.
  • Vladimir Diaditchev
    14 мая 2021, 20:55
    На языке R  есть примеры тестеров в интернете, данные из Квик качаются элементарно.  Можно простым копированием, можно через LUA.  7.7 Evaluating Trading Rules | Techincal Analysis with R (bookdown.org)
    • 3Qu
      14 мая 2021, 21:03
      Vladimir Diaditchev, R — абсолютно жуткие — и язык, и среда, и экосистема. Имхо. Еще и оч тягомотные.
      Бросайте вы это дело.) На втором месте MQL.))
      • Vladimir Diaditchev
        15 мая 2021, 11:44
        3Qu, Понятно, что есть более продвинутые языки. Для статистки вполне достаточно, можно тестировать торговые идеи.  R позволяет получать данные из Квик, Quandl, Yahoo, FRED, Macrotrends, Финама, сайта ЦБ РФ. На R можно экспериментировать с нейросетями, SVM, деревьями, вейвлетами и прочими приблудами. Можно посмотреть, как это работает в почти в реалтайм,  получая поток данных из Квик. Можно анализировать портфели. Есть куча библиотек для этого, несколько строк кода и получаешь результат. 
  • Квантопиан закрылась, из известных остался квантконнект. Там возможность писать на питоне или C#. Но сами понимаете, что бесплатные серваки не очень мощные. За мощность попросят доплатить от 8 баксов, или тащить Doker к себе на комп. 
  • Redline
    14 мая 2021, 21:07
  • Андрей К
    14 мая 2021, 21:18
    а я бы остался на mql. 
    • 3Qu
      14 мая 2021, 21:37
      Андрей К, как говорил Жванецкий — когда другой машины не видел, Запорожец — ВО! машина.
  • iddqd3n
    15 мая 2021, 00:29
    Я маньяк, поэтому делаю это всё на плюсах :D
  • _Beginner_
    15 мая 2021, 03:09
    Пиши на русском, большинство  поймут))
  • InvestorNaDolgo
    15 мая 2021, 07:03
    Господа, если вы разбираетесь в программировании, нафига вам трейдинг? Программисты сейчас хорошо зарабатывают. А трейдеры только теряют деньги с умным видом. Я не понимаю…
    • AlexeyM
      15 мая 2021, 09:52
      InvestorNaDolgo, одно другому не мешает :)
    • Профиль удален
      15 мая 2021, 13:36
      InvestorNaDolgo, если человек пишет только на MQL, то это не программист :)
  • Roman Ivanov
    15 мая 2021, 11:05
    python-based и «высокая скорость движка» — противоречие, однако
  • Профиль удален
    15 мая 2021, 13:35
    С++ под метатрейдер можно использовать, DLL свою написать, а в C++ возможностей вагон. Кроме того, можно и на шарпе писать если огранизовать сообщения между DLL и аппликухой на шарпе, например через named pipes или сокеты.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн