Тихая Гавань
Тихая Гавань личный блог
01 октября 2018, 15:51

Тяжкая жизнь программиста, или на пути к мультитаймфреймовому роботу.

мультитаймфреймовый… жесть какая… пришлось по слогам проговаривать чтобы написать правильно, и то не уверен что правильно написал ))) 

ВСЕМ ПРИВЕТ!
продолжаю писать робота...
хорошо выхи были, с утра до ночи писал )) 

иногда всетаки хорошо что то новое начать писать на основе старых алгоритмов, начинаешь приводить в порядок, причесывать код, находить старые ошибки )) 

сначала писал в МТ4, но там эти особенности входа не по тем ценам по которым нужно, как и выхода тоже — спред дело такое… ага… в общем перешел в НИНЗЮ. 
пишу в ней. 

сразу скажу — мне без разницы где писать, хоть в экселе, так как сейчас задача — алгоритмически формализовать все идеи, протестировать всю математику всех методов. и потом прогнать на истории желательно реал котировок, с учетом наполненности стакана. МТ4 этого не даст, в IB писать сразу и код робота и оболочку под него — коннектор к АПИ для меня не реально, а потому в нинзе кодю )) 

Но нинзя она такая зараза блин. 
начал с того что создал новую стратегию в нинзе, эт так роботы там кличутся. и в субботу весь день писал. несколько сот строчек зафигачил. 
скомпилировал.
функций торговли в нем еще нет, исключительно рассчетная математика так как используется 4 нестандартныйх таймфрейма, то пришлось перерыть весь интернет, в поисках шпаргалки как одновременно работать с масивами данных из разных таймфреймов, как делать вычисления, куда все это записывать, так чтобы не потеряться в коде )) в результате в субботу вечером — вот он красавец код, вылизанный весь, аж блястит )) 

и первая незадача, и чо с ним дальше делать? поскольку в нем нет торговых функций, то я в нинзе никак, от слова ВАЩЕНИКАК не смогу проверить что там мой код вычисляет. 

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

а какая нафик торговля если я в реале не знаю что там мой робот вычисляет? может у него там 2+2 примерно 5 или 6 )) как вообще дебагить черные ящики которые НИКАК не отображают свою внутреннюю работу? 

в общем «походил» я вокруг этого черного ящика, плюнул вырубил нинзю, комп, и спать.. 

с утра воскресенья, опять за дело, врубаю нинзю, Тулз->ЭдитНинзяскрипт-> выбираю своего робота, бабах… открывается диалоговое окошко
КРЕЙТ А НЬЮ СТРАТЕДЖИ !!!!

чо???? вотафак??? 

у меня там как минимум пара сотен строчек кода, какой КРЕЙТ НЬЮ??? в общем никак нинзя не хотела возвращать мне мои драгоценные выжатые из моего стареющего ума строчки (( 

ну ладно… нет так нет, чо, я суть помню, ок, убью воскресенье и напишу заново… но лень матушка она спасительница… рождается идея — залезть в папку со скриптами и просмотреть на моего робота через БЛОКНОТ. авось всетаки нинзя не убила код?

нашел папку, залез в код, и… АЛЛИЛУЙЯЯ!!! вот они родненькие все мои строчечки ))) сидят на месте, ждут папку.. 
но проблема черного ящика так и осталась нерешенной… а продолжать дальше — тоесть внедрять торговые функции, не убедившись что там с математикой — это бредовая идея… и опять в раздумиях чо блин делать то.. 

в итоге перенес весь этот код в новый индикатор, прописал кучу всякой всячины туда еще, чтобы наглядно отображались все результаты вычислений… и понеслась родимая по кочкам )) 

как же хорошо, когда есть возможность сразу видеть результат того что делает программа.)) 

в общем вот: 

Тяжкая жизнь программиста, или на пути к мультитаймфреймовому роботу.

4 таймфрейма.
каждая черточка — это бар непосредственно своего таймфрейма. 
серый цвет — далеко от уровня.
цветной — проторговка уровня.
зеленый вверх, красный вниз соответственно. 

далее стоп / двойной стоп
далее тиков до уровня и цена уровня  

на скрине последние 100 баров каждого Таймфрейма. эт я ради прикола сделал… на самом деле достаточно последних 10 — 15 баров. 

в итоге получилось примерно так: 

Тяжкая жизнь программиста, или на пути к мультитаймфреймовому роботу.

ну и все… математика работает на отлично, сбоев нет… ну и решил я таки в коде индикатора полностью реализовать все свои идеи вплоть до торговых, конечно торговать с индикатора нинзя не позволит, но мне особо и не надо, важно чтобы видеть наглядно что когда где кому и за что )) 

в частности индикатор уже дает сигнал 
торговля или нет
если торговля то вход от, стоп тут, тейк там )) 

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








29 Комментариев
  • Дед Панас
    01 октября 2018, 16:00
    Как торговать по этому изобретению?
  • ATR в основе?
  • Тарас Громницкий
    01 октября 2018, 16:16

    Сурово.

    Методов дебага «чёрных ящиков» довольно много.

    Начиная с настоящего бега прямо из среды выполнения.

    Например Visual studio или Idea Rider.

    И заканчивая квазидебагингом.

    Когда работающая программа записывает данные куда-то.

    К примеру в файл.

    Или представляет их в неком визуальном виде.

      • Тарас Громницкий
        01 октября 2018, 16:47

        Тихая Гавань, протестируйте на истории малой кровью.

        А после можно что-то решать с реалтайм роботом.

        Это должно быть стабильно и качественно.

        И минималистично, чтобы меньше накосячить.

          • Тарас Громницкий
            01 октября 2018, 17:10

            Тихая Гавань, это нормально.

            Неизбежная эволюция.

            Кстати, с мутифрейменностью баловался.

            Есть решение, где на входе тики или некие бары базового фрейма.

            А на выходе бары избранного фрейма(кратного базовому).

              • Тарас Громницкий
                01 октября 2018, 17:14
                Тихая Гавань, и история у вас хранится и дополняется в режиме реального времени?
                  • Тарас Громницкий
                    01 октября 2018, 17:18

                    Тихая Гавань, короткая история делается, а длинная никак.

                    Особенно если торгуемых инструментов пара десятков.

      • cfree0185
        01 октября 2018, 18:20
        Тихая Гавань, ТС, ты в окне стратегий выставил галочку для разрешения торговать конкретной стратегии? да и как она тебе выдает в тестере результаты, если не торгует (не посылает ордера)? да и как бы к IB все замечательно подключается и торгует, но только опционы не поддерживаются
  • Vkt
    01 октября 2018, 16:35
     конечно торговать с индикатора нинзя не позволит

    Справедливости ради - 

    ninjafutures.ru/resources/charttrader-dlja-besplatnoj-versii-ninjatrader-7.22/
      • Vkt
        01 октября 2018, 17:02
        Тихая Гавань, там как раз реализованы торговые функции внутри индикатора нинзи. Я лично делал индикатор, который делал сделки по двум инструментам одномоментно, типа парный трейдинг.

          • Vkt
            01 октября 2018, 17:27
            Тихая Гавань, я то откуда знаю, это к разработчикам вопрос.

          • Тарас Громницкий
            01 октября 2018, 17:39

            Тихая Гавань, тут я могу только догадываться.

            По логике индикатор — это некая функция цены, а стратегия — это набор правил по покупке/продаже.

  • Мр.Дакс
    01 октября 2018, 17:13

    кину ка я ложечку дёгтя в вашу бочку с мёдом ))

    всё это программирование конечно круто,
    сам обожаю созидать, ради спортивного интереса,

    но вот беда, читал как то я научную статью с Бломберга, от Julius Bär

    так вот заключение было такое, что не стоят все эти
    замудрённые алгоритмы в среднем и гроша ломанного ...

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

    моё мнение тоже, чем проще стратегия, тем она доходнее ..

    лучше вы в кабак пошли на выходных, с друзьями пивка выпить ))

  • Александр
    01 октября 2018, 17:19
    Желаю тебе от чистого сердца, чтобы твой робот был лютым сливалой и гопником)
  • ves2010
    01 октября 2018, 18:36
    тслаб+ кубик сжать= любой таймфрейм хоть 3мин, хоть 33мин, хоть 333мин 

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

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