мультитаймфреймовый… жесть какая… пришлось по слогам проговаривать чтобы написать правильно, и то не уверен что правильно написал )))
ВСЕМ ПРИВЕТ!
продолжаю писать робота...
хорошо выхи были, с утра до ночи писал ))
иногда всетаки хорошо что то новое начать писать на основе старых алгоритмов, начинаешь приводить в порядок, причесывать код, находить старые ошибки ))
сначала писал в МТ4, но там эти особенности входа не по тем ценам по которым нужно, как и выхода тоже — спред дело такое… ага… в общем перешел в НИНЗЮ.
пишу в ней.
сразу скажу — мне без разницы где писать, хоть в экселе, так как сейчас задача — алгоритмически формализовать все идеи, протестировать всю математику всех методов. и потом прогнать на истории желательно реал котировок, с учетом наполненности стакана. МТ4 этого не даст, в IB писать сразу и код робота и оболочку под него — коннектор к АПИ для меня не реально, а потому в нинзе кодю ))
Но нинзя она такая зараза блин.
начал с того что создал новую стратегию в нинзе, эт так роботы там кличутся. и в субботу весь день писал. несколько сот строчек зафигачил.
скомпилировал.
функций торговли в нем еще нет, исключительно рассчетная математика так как используется 4 нестандартныйх таймфрейма, то пришлось перерыть весь интернет, в поисках шпаргалки как одновременно работать с масивами данных из разных таймфреймов, как делать вычисления, куда все это записывать, так чтобы не потеряться в коде )) в результате в субботу вечером — вот он красавец код, вылизанный весь, аж блястит ))
и первая незадача, и чо с ним дальше делать? поскольку в нем нет торговых функций, то я в нинзе никак, от слова ВАЩЕНИКАК не смогу проверить что там мой код вычисляет.
на График робот не цепляется, запустить его можно только в анализаторе стратегий, а там показывается только результат торговли..
а какая нафик торговля если я в реале не знаю что там мой робот вычисляет? может у него там 2+2 примерно 5 или 6 )) как вообще дебагить черные ящики которые НИКАК не отображают свою внутреннюю работу?
в общем «походил» я вокруг этого черного ящика, плюнул вырубил нинзю, комп, и спать..
с утра воскресенья, опять за дело, врубаю нинзю, Тулз->ЭдитНинзяскрипт-> выбираю своего робота, бабах… открывается диалоговое окошко
КРЕЙТ А НЬЮ СТРАТЕДЖИ !!!!
чо???? вотафак???
у меня там как минимум пара сотен строчек кода, какой КРЕЙТ НЬЮ??? в общем никак нинзя не хотела возвращать мне мои драгоценные выжатые из моего стареющего ума строчки ((
ну ладно… нет так нет, чо, я суть помню, ок, убью воскресенье и напишу заново… но лень матушка она спасительница… рождается идея — залезть в папку со скриптами и просмотреть на моего робота через БЛОКНОТ. авось всетаки нинзя не убила код?
нашел папку, залез в код, и… АЛЛИЛУЙЯЯ!!! вот они родненькие все мои строчечки ))) сидят на месте, ждут папку..
но проблема черного ящика так и осталась нерешенной… а продолжать дальше — тоесть внедрять торговые функции, не убедившись что там с математикой — это бредовая идея… и опять в раздумиях чо блин делать то..
в итоге перенес весь этот код в новый индикатор, прописал кучу всякой всячины туда еще, чтобы наглядно отображались все результаты вычислений… и понеслась родимая по кочкам ))
как же хорошо, когда есть возможность сразу видеть результат того что делает программа.))
в общем вот:
4 таймфрейма.
каждая черточка — это бар непосредственно своего таймфрейма.
серый цвет — далеко от уровня.
цветной — проторговка уровня.
зеленый вверх, красный вниз соответственно.
далее стоп / двойной стоп
далее тиков до уровня и цена уровня
на скрине последние 100 баров каждого Таймфрейма. эт я ради прикола сделал… на самом деле достаточно последних 10 — 15 баров.
в итоге получилось примерно так:
ну и все… математика работает на отлично, сбоев нет… ну и решил я таки в коде индикатора полностью реализовать все свои идеи вплоть до торговых, конечно торговать с индикатора нинзя не позволит, но мне особо и не надо, важно чтобы видеть наглядно что когда где кому и за что ))
в частности индикатор уже дает сигнал
торговля или нет
если торговля то вход от, стоп тут, тейк там ))
большое спасибо всем тем программистам которые откликнулись на мою просьбу и дали дельные советы в моей прошлой теме! я с вашего позволения вас еще помучаю.
Сурово.
Методов дебага «чёрных ящиков» довольно много.
Начиная с настоящего бега прямо из среды выполнения.
Например Visual studio или Idea Rider.
И заканчивая квазидебагингом.
Когда работающая программа записывает данные куда-то.
К примеру в файл.
Или представляет их в неком визуальном виде.
привет Тарас, так вся фича в том, что в нинзе нереально выгрузить результаты просчета..
может у меня нинза забагованная, но нацепить на график робота я не могу, только в тестере через табличный метод могу его прогнать ))
с этим я буду разбираться много позже, когда будет готов робот ))
Тихая Гавань, протестируйте на истории малой кровью.
А после можно что-то решать с реалтайм роботом.
Это должно быть стабильно и качественно.
И минималистично, чтобы меньше накосячить.
вручную такое крайне сложно тестировать… глаз очень быстро замыливает отслеживать одновременно 4 совершенно разных таймфрейма один из них с минутами, а три тиковые с разными периодами.
потому и пишу " визуализатор" принятия торговых решений, чтобы не глазами по 4 мониторам бегать, а все в одном графике видеть
Тихая Гавань, это нормально.
Неизбежная эволюция.
Кстати, с мутифрейменностью баловался.
Есть решение, где на входе тики или некие бары базового фрейма.
А на выходе бары избранного фрейма(кратного базовому).
а в нинзе с этим проще
Тихая Гавань, короткая история делается, а длинная никак.
Особенно если торгуемых инструментов пара десятков.
мне нужны только ХАЙ и ЛОЙ нового бара, так что я не заморачиваюсь с опен/клоз и временем открытия такого бара..
я в одном цикле прогоняю всю историю котировок и на лету формирую хай лой искомых баров, и так же на лету произвожу с полученными таймфреймами математические операции… как только я получил обработанные данные, мне этот бар перестает быть интересным и программа его забывает переходя дальше по циклу.
1 — зачем мне выставлять галочку если торговых функций пока нету?
2 — никак
3 — я в курсе что подключается, вопрос не в брокере а в программном обеспечении..
писать под АПИ IB или писать под нинзю.
Справедливости ради -
ninjafutures.ru/resources/charttrader-dlja-besplatnoj-versii-ninjatrader-7.22/
я вообще то про робота говорю и прописанные торговые функции внутри индикатора что нинзя ни в коем случае не позволит сделать..
а вы мне про ручную торговлю с графика… Ээ…
в чем тогда прикол? в чем разница между индикатором и стратегией в нинзе?
Тихая Гавань, тут я могу только догадываться.
По логике индикатор — это некая функция цены, а стратегия — это набор правил по покупке/продаже.
кину ка я ложечку дёгтя в вашу бочку с мёдом ))
всё это программирование конечно круто,
сам обожаю созидать, ради спортивного интереса,
но вот беда, читал как то я научную статью с Бломберга, от Julius Bär
так вот заключение было такое, что не стоят все эти
замудрённые алгоритмы в среднем и гроша ломанного ...
там также тестировали всякого рода дорогие и сложные системы
хедж фондов, которые как правило долгосрочно болтаются возле нуля, но были и исключения ...
моё мнение тоже, чем проще стратегия, тем она доходнее ..
лучше вы в кабак пошли на выходных, с друзьями пивка выпить ))
но где грань вот это просто а вот это сложно?
любую простоту понятную на глаз — достаточно сложно внедрить в алгоритм, и чем проще идея тем труднее ее формализовать..
так как наш ум умеет обобщать и думать в ключе ПРИМЕРНО +-
программа так не умеет.