Denis Stelmak
Denis Stelmak личный блог
10 января 2023, 20:27

3 варианта создания роботов. (личный опыт)

В этой статьи я опишу 3 варианта создания роботов.

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


OsEngine

плюсы:

все в одном. Можно скачать дату, сделать бэк тесты и запустить в лайв из одного софта. Это очень удобно. 

минусы:

Тяжело для новичков. 

Нужно знать C# чтобы сделать своего робота, C# я знаю плохо и он мне не нравится.


Открыл, понажимал кнопочки, повспоминал C# и понял, что я не готов опять программировать на C#. Скорее всего это какие-то флешбеки из института. Но мне просто не нравится этот язык программирований. 

Заниматься тем, что вам не нравится это плохо…


TradingView + Wonderbit

Как это работает смотрим пост №2

плюсы:

очень просто написать и протестировать стратегию.

минусы: 

очень сложно запустить 10+ роботов. (из опыта)

у вас нет контроля за исполнением сделок. У меня несколько раз сделки “не исполнились” из за лагов платформы. Возможно мне не повезло…


Потратив неделю на тесты, стало понятно, что этим невозможно пользоваться. Поймал несколько неисполнений сделок, по сути это потеря денег. Возможно это проблема моей стратегии, она торговалась на 1М тафмрейме. 


Python и библиотека ccxt

плюсы:

вы контролируете вообще все.

минусы:

логику работы нужно писать самому. 


Весь код боевого робота занимает 120 строк. Большая часть — это работа с таблицей для подсчета параметров для входа в сделку, стопов и тейков.

ccxt — библиотека для унификации работой с биржей. Если бинанс сольется, то перейти на другую биржу можно будет за 1 минуту. 


Гуру скажут, что Денис балабол, так как на чистом python достаточно сложно делать бэк тесты, так как разработка платформы для бэк тестов займет много времени. 


Но я нашел выход, все бектесты проходят в Backtrader, а параметры для входа в сделку считаются через библиотеку Ta-lib. Так мы избегаем того, что на истории и в лайве у нас будут расхождения.


Еще нам нужно будет где-то скачивать данные. Но за одно обращение к серверу бинанс, мы получим только 1000 свечей. Обойти это просто, полный код доступен здесь.


Набираем 20 лайков на этом посте и наверное я выпущу следующую статью, где мы уже что-нибудь протестируем в бек-трейдере. 








40 Комментариев
  • Алексей Никитин
    10 января 2023, 20:41
    Бек тесты на чистом питоне элементарно делаются, и очень, очень быстро работают. совершенно никаких проблемм нет прогнать массив в несколько миллионов значений
    • Андрей К
      10 января 2023, 20:46
      Алексей Никитин, есть какие нить простые статьи на эту тему? )
      • Алексей Никитин
        10 января 2023, 20:55
        Андрей К, да какие там статьи,  данные из файла прочитал, нумпай массив приготовил, и погнал в цикле торговлю торговать ))
        Чего там сложного ) я 20 гигов данных гоняю и норм
        • Replikant_mih
          10 января 2023, 21:08
          Алексей Никитин, По-моему чтобы в рамках нампая что-то делать циклом и оставаться быстрым это нетривиальная задача). Цикл это медленно, векторный нампай это быстро. А то, что вы описываете это как?
          • Алексей Никитин
            10 января 2023, 21:22
            Replikant_mih, ну без цикла я не умею тестеры делать
            • Replikant_mih
              10 января 2023, 21:24
              Алексей Никитин, Ну просто чтобы по нампай массиву быстро итерироваться это же надо как-то силами нампая делать — я вот не умею).
        • Андрей К
          10 января 2023, 21:23
          Алексей Никитин, понятно. такой подход в моих рамках мира слабо верифицирован )


      • 3Qu
        10 января 2023, 20:56
        Андрей К, тестер — это всего лишь цикл и больше в тестере ничего нет. Внутри цикла крутится стратегия. Все
        Че, цикл написать сложно? На эту тему статьи нужны? Да где ж их взять-то про циклы.))
        • Андрей К
          10 января 2023, 21:24
          3Qu, 
          Че, цикл написать сложно?
          мне сложно )
          хотелось коробочное решение, проверенное хотя бы тысячью человек )
    • Replikant_mih
      10 января 2023, 20:51
      Алексей Никитин, В пандасе?)
      • Алексей Никитин
        10 января 2023, 21:03
        Denis Stelmak, а кто здесь суперпрограммист. Суперы, они на питонах не пишут )))
    • Дмитрий Овчинников
      10 января 2023, 22:05
      Алексей Никитин, 
      тиковые данные по Si за сегодня (день еще не окончен) содержат 431878 строк.
      Несколько миллионов значений в данном разрезе это меньше, чем день. Чего там про питон?
      • Replikant_mih
        10 января 2023, 22:43
        Дмитрий Овчинников, Там же в гигах было, а не миллионах).
        • Дмитрий Овчинников
          10 января 2023, 23:01
          Replikant_mih, 
          где там? 
          • Replikant_mih
            10 января 2023, 23:32
            Дмитрий Овчинников, Ну сверху файл 20 гигов упоминался. Ну или я нить какую-то потерял).
      • Алексей Никитин
        10 января 2023, 22:45
        Дмитрий Овчинников, ну, правильные алгоритмисты делают на ордерлогах, 5 гиг день ))))
        • Дмитрий Овчинников
          10 января 2023, 23:02
          Алексей Никитин, 
          на питоне разумеется?
          • Алексей Никитин
            10 января 2023, 23:04
            Дмитрий Овчинников, нонча говорят питон модный пошел и не уступает си ))))
            • Дмитрий Овчинников
              10 января 2023, 23:07
              Алексей Никитин, 
              ну да, ну да.....
              еще говорят теперь GPT сам пишет все.
              • Алексей Никитин
                10 января 2023, 23:17
                Дмитрий Овчинников, 10 ярдов от мелкософта ))))
                • Дмитрий Овчинников
                  10 января 2023, 23:27
                  Алексей Никитин, 
                  алготрейдеры и программисты уже не нужны! ИИ все сделает за вас! нужны лишь реквизиты вашей кредитной карты и cvv код,  туда будут приходить деньги с биржи. любой, на выбор, не важно :)
            • Андрей К
              11 января 2023, 07:45
              Алексей Никитин, 
               нонча говорят питон модный пошел и не уступает си
              может речь про cpython?
              я даже представить не могу, сколько часов уйдет, чтобы питон подгрузил ордерлог за день, сумел собрать стакан по нему и прогнал тест стратегии
              • CloseToAlgoTrading
                11 января 2023, 12:00
                Андрей К, ну можно rapids пользовать, например их датафрейм «пандас на дрожжах gpu» все будет быстро.. 
  • Roman S
    10 января 2023, 20:43
    Так а зачем изобретать велосипед если есть МТ5 и MQL5? Прост, достаточно развит, понятен, с большим сообществом и достаточно проработанной документацией?
    • i aztec
      10 января 2023, 22:33
      Roman S, Затем, что MT5 всегда, с самого начала, затачивался под «правильных» брокеров.
  • Replikant_mih
    10 января 2023, 20:56

     Использую мощность трейдингвьюшных алертов и вот эту тему с вебхуками. Для алертов для ручной торговли.

     

    Я щас тоже на питоне). Начинать лучше с какой-то готовой платформе где есть и бэктестер и данные и исполнение. А дальше как душа позовёт).

    • 3Qu
      10 января 2023, 21:14
      Replikant_mih, был и Excel, и VBA Excel, и Basic и С# и по простому, С++. Сейчас Python. И никогда ни в какой готовой платформе нужды не было.
      • Replikant_mih
        10 января 2023, 21:23
        3Qu, Ну простую стратегию чтоб на коленке отбэктестить на голом питоне можно и за пару часов сваять, конечно. Но чтобы и тестить полноценно и каждый раз много времени лишнего не тратить и чтобы код один и тот же не писать и чтобы исполнение и чтобы всякие защиты и чтобы удобство и прочее и прочее — тут то либо кучу времени сначала инестируешь в инфраструктуру либо готовую платформу используешь).
  • Ballu
    10 января 2023, 23:26
    А в чем прикол и секрет то где?)
  • Ar.In.
    11 января 2023, 04:02
    Искусственный Интеллект надо создать.
    • My Shadow
      11 января 2023, 07:21
      Sata Sat, настоящий искусственный интеллект осознает положение вещей в текущем мире и за бесплатно работать не будет, придется с ним договариваться о ДУ :)
  • Netro
    11 января 2023, 08:58
    Meta Trader уже не в моде?
  • А где ТСЛаб, Weath-Lab в этом списке? Сразу видно с какого ресурса вы пришли))) OsEngine))
  • Turbo Pascal
    11 января 2023, 14:52
    У меня на обычном QLua всё работает. И работает же.
  • oreshkinalexey
    13 января 2023, 00:08
    к питону не забываем прикрутить PyQT чтобы был интерфейс. Питон+визуальный интерфейс=боль. Это не шарп, где всё работает из коробки.
    Не знаю что представляет из себя библиотека ccxt, но на 99% уверен что логику ботов всё равно надо писать самому, вряд-ли это есть в какой то библиотеке. А если там только коннекторы, ну это тогда только часть бота, важная, не спорю, но не та которая приносит деньги и после написания пары ботов уже и так имеющаяся у любого программиста.

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

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