Блог им. Crazy_Trading

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

в общем вот: 

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

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

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

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

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

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

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

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

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








    ★6
    29 комментариев
    Как торговать по этому изобретению?
    avatar
    ATR в основе?
    Нэш Ван Дрейк (Кот Скрипаля), нет
    avatar

    Сурово.

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

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

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

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

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

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

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

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

    с этим я буду разбираться много позже, когда будет готов робот ))
    avatar

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

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

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

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

    Тарас Громницкий, дак все к тому и идет..
    вручную такое крайне сложно тестировать… глаз очень быстро замыливает отслеживать одновременно 4 совершенно разных таймфрейма один из них с минутами, а три тиковые с разными периодами. 

    потому  и пишу " визуализатор" принятия торговых решений, чтобы не глазами по 4 мониторам бегать, а все в одном графике видеть
    avatar

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

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

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

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

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

    Тарас Громницкий, ну я это уже давно воплотил даже в МТ4 )) голову сломал но сделал.. 

    а в нинзе с этим проще
    avatar
    Тихая Гавань, и история у вас хранится и дополняется в режиме реального времени?
    Тарас Громницкий, зачем? она на лету генерится, все в доли секунды делается. 
    avatar

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

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

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

    мне нужны только ХАЙ и ЛОЙ нового бара, так что я не заморачиваюсь с опен/клоз и временем открытия такого бара.. 
    я в одном цикле прогоняю всю историю котировок и на лету формирую хай лой искомых баров, и так же на лету произвожу с полученными таймфреймами математические операции… как только я получил обработанные данные, мне этот бар перестает быть интересным и программа его забывает переходя дальше по циклу.
    avatar
    Тихая Гавань, ТС, ты в окне стратегий выставил галочку для разрешения торговать конкретной стратегии? да и как она тебе выдает в тестере результаты, если не торгует (не посылает ордера)? да и как бы к IB все замечательно подключается и торгует, но только опционы не поддерживаются
    avatar
    cfree0185, 
    1 — зачем мне выставлять галочку если торговых функций пока нету? 
    2 — никак
    3 — я в курсе что подключается, вопрос не в брокере а в программном обеспечении.. 
    писать под АПИ IB или писать под нинзю. 
    avatar
     конечно торговать с индикатора нинзя не позволит

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

    ninjafutures.ru/resources/charttrader-dlja-besplatnoj-versii-ninjatrader-7.22/
    avatar
    Vkt, уважаемый зачем такой справедливый, и такой не внэматэльный? а? 
    я вообще то про робота говорю и прописанные торговые функции внутри индикатора что нинзя ни в коем случае не позволит сделать..

    а вы мне про ручную торговлю с графика… Ээ…
    avatar
    Тихая Гавань, там как раз реализованы торговые функции внутри индикатора нинзи. Я лично делал индикатор, который делал сделки по двум инструментам одномоментно, типа парный трейдинг.

    avatar
    Vkt, а вот это уже интересно, спасибо!
    в чем тогда прикол? в чем разница между индикатором и стратегией в нинзе? 
    avatar
    Тихая Гавань, я то откуда знаю, это к разработчикам вопрос.

    avatar
    Vkt, ))))
    avatar

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

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

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

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

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

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

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

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

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

    avatar
    Мр.Дакс, спасибо за ваше мнение, 
    но где грань вот это просто а вот это сложно? 

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

    так как наш ум умеет обобщать и думать в ключе ПРИМЕРНО +-

    программа так не умеет. 
    avatar
    Желаю тебе от чистого сердца, чтобы твой робот был лютым сливалой и гопником)
    avatar
    тслаб+ кубик сжать= любой таймфрейм хоть 3мин, хоть 33мин, хоть 333мин 
    avatar
    ves2010, и? 
    avatar
    Тихая Гавань, не тяжко ниразу… делов на 2 минуты
    avatar
    ves2010, я рад за вас )) 
    avatar

    теги блога Тихая Гавань

    ....все тэги



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