Блог им. neophyte

Ах, это просто прелесть - сотрясение мозгов



Вчера вечером по просьбе коллеги начал экспериментировать с трейлинг-стопом по эквити для портфельной торговли.

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



Вроде все сделал как надо, запустил на экспериментальном счете, поставил уровень цели по эквити +100%, трейлинг по эквити на 5%, и ушел спать.

Просыпаюсь утром, мать моя женщина!
Робот за ночь такого наторговал....

Ах, это просто прелесть - сотрясение мозгов

 


Первым делом он закрыл все имеющиеся к тому моменты прибыльные позиции. А потом и начал открываться по сигналам и тут же закрывать.В общем хрен знает что.

Хорошо что я сразу не посмотрел на его художества. Иначе ночь точно спать не пришлось бы. А так у меня испорчено только утро.
Встал в 6 часов попить водички, глянул на монитор и офигел от неожиданности и полного непонимания.

Что эта железяка выделывает совершенно непонятно.
Точнее, выделывает она то, что хозяин приказал, а хозяин в собственных приказах разобраться не может.
Вроде логика алгоритма примитивная, проще быть не может и все понятно. Ан нет, что-то не учел или в стартовых условиях или в процессе работы с присвоением значений переменным.
Два часа пытался решить проблему, мозги вскипали, ан нет.  Дошло до того, что усомнился в понимании роботом правил арифметики, и основания для этого тоже казалось были.
Но результатом всех моих действий было только ускорение падения в конце графика баланса, приведенного вверху.

И только к концу второго часа что-то в мозгах забрезжило. Забыл старое правило: «Машина дура и делает то, что ты ей написал в программе, а не то, что ты от нее хотел бы получить.»
Переписал модуль, ставлю на комп и иду заваривать кофе, потому что чаем меня в чувство привести уже не получится.

А в целом после такой перегрузки нужно уже не работать, а весь день пить пиво с фисташками. Чем я наверное и займусь.
Это если все удачно выйдет. Если же нет, то пропал человек, а все из-за того, что кому-то понадобился трейлинг-стоп по эквити. :)

P.S. Честно говоря, программирование — дело молодых. В моем возрасте уже нужно сидеть за полированным столом в кабинете и раздавать указания через секретаршу. :)
16 комментариев
Попили водички)
avatar
Д Л, продолжаю, глядя на монитор. Пока вроде все в порядке, но условия, где робот должен начать действия по откорректированному алгоритму еще не наступили. А в тестере этого не заметишь.
avatar
Николай Скриган, как я понимаю на реале запустили эксперементального?
avatar
Д Л, я что, так сильно проявляю признаки неадекватности? :)
На реале запускаются только отлаженные программы, в которых явно видимых косяков нет. Обычно, до окончательной версии еще несколько невидимых вылавливается.
avatar
Николай Скриган, я просто спросил без всяких подколок)
avatar
Д Л, так и я просто ответил. Без всяких подколок :)
И даже смайлик поставил для ясности, что я не в претензии.
avatar
«Первым делом он закрыл все имеющиеся к тому моменты прибыльные позиции. А потом и начал открываться по сигналам и тут же закрывать»

Ошибка где-то. Бывает. Выводите после каждого действия командой print  в журнал значения переменных и предпринимаемые действия, думаю быстро разберетесь. Потом принты комментарятся, на случай если понадобятся снова.

В тестере всё то же самое.
avatar
TovaL, в тестере я не увижу процесс отработки уровней. Без этого не понять ошибку. Возможны вы правы, конечно, но ошибка в логике. О ней нужно думать. Мне проще сконструировать ситуацию и понаблюдать в реале, чем разбираться с журналами.

avatar
Николай Скриган, а как же режим визуализации, чем он от риала отличается кроме скорости?

В моей практике роботописания был такой смешной случай, в очень большом коде, вероятно в результате копирования похожего куска, но с другими условиями, я не заменил "<" на ">". И сколько не смотрел на этот код, побуквенно проигрывая логику, глаз видать замылился и не тот знак сравнения не замечал прямо в упор. Взгляд через журнал, где было написано что-то типа «Сигнал жопа =0. В панике закрываем сделку» помог. Одно дело код смотреть или даже визуализацию, другое такие понятные комментарии анализировать. Ну по крайней мере я теперь пользуюсь, затраты сокращает.
avatar
TovaL, вы забыли. что ведь эти комментарии вы сами пишете… :) В нужных местах. У меня не столь велик код этого куска. Всего с десяток строчек. Проблема в логике, а не в коде. Я знал, что делал робот и где он это делал. Я не мог понять, почему. Где я накосячил с логикой. 
avatar
Глядя на строчку я думаю что она работает правильно. Не вижу в упор не тот знак сравнения. Комментарии ставлю не так что «эта строчка делает то-то», а так, что логика остается вне комментариев. Из этого и понимаю, что действия пошли не по той логике, которую я задумал и записал в коде.

Если речь об эквити, кстати, значит возможно вы анализируете закрытые ордера. Там, если я всё правильно помню, есть нюанс, робот видит закрытые ордера за тот период, который показан в вашем терминале. Возможно тут проблема. Так же с порядком выдачи вам ордеров у них чехарда, они этот порядок даже меняли от билда к билду. Может поможет эта инфа.
avatar
TovaL, «Машина дура и делает то, что ты ей написал в программе, а не то, что ты от нее хотел бы получить.»
avatar

TovaL, 
P.S. Тестер фиксирует результат сделки. Для меня важны действия в промежутке между сделками, так как настройки и режимы  меняются по плавающей прибыли.

Да и комментарии лень встраивать. Не привык... Хотя на будущее учту.

avatar
Только руками можно заработать, никогда вы в продолжительном периоде не заработаете на роботах
avatar
Сергей Сметанин, угу.
Это правда мне напоминает рассуждения типа о невозможности прыгнуть на 2 метра в высоту на основании собственного печального опыта.
avatar
Николай Скриган, у меня нет опыта в роботах. Зачем тратить время на то что не работает. Рынки постоянно меняются, невозможно постоянно зарабатывать на одних и тех же алгоритмах.
avatar

теги блога neophyte

....все тэги



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