предыстория в предыдущей статье
smart-lab.ru/blog/264251.php
Сначала ответим на вопросы.
Нафига столько роботов?
У меня пока мало опыта чтобы построить нормального робота, поэтому приходится такой фигнёй заниматься.
Я экспериментирую с разными роботами, большинство из них пока оказываются лошариками и отключаются вскоре.
Также по глупости был печальный опыт когда у меня было всего пара роботов и одним из них я заработал пару сотен тысяч рублей за 2 недели, и этот-же робот потом их слил за несколько дней. Вот тогда я решил что нужно сильнее диверсифицироваться. Ок, как оказалось такое увеличение роботов не так уж и много мне дало. Сначала я на глаз это заметил, а потом решил посчитать корреляцию и убедился в этом.
С подсчётом корреляций и всяких просадок я не закончил, но пока это далеко не на первом месте. Капитал будет распределяться исходя из полученной информации, но уже понятно что чудо прироста это не даст. Может несколько процентов годовых.
Так что не ради корреляции это всё затевалось, а ради следующей вещи:
Множитель лотов.
Ок, это шуточное название, в честь одного из роликов который наверно все видели.
На самом деле смысл такой, мы объединяем предсказательную способность всех роботов и открываем новую позицию на основе сигналов от всех роботов вместе взятых.
Сделать это можно разными способами, самый простой будет такой:
Если хотя-бы половина из наших роботов в лонге то стоит добавить ещё контрактов, так как сигнал достаточно сильный.
Других вариантов огромное количество, можно считать скользящую от недавно открытых контрактов, и открывать новый при пересечении, можно считать боллинджера, можно усредняться, итд.
Для начала я решил проверить самый простой вариант.
Если больше Х роботов в лонге то добавляем позицию. Если меньше X роботов в лонге то не добавляем\закрываем лишнее.
Для шорта наоборот.
В итоге даже такой простой вариант увеличивает кпд роботов на 3%.
На скрине видно что базовая прибыль 1.94руб за каждые 10 минут одного открытого контракта.
А если открывать дополнительный контракт после 7 открытых то прибыль возрастёт до 1.99руб за каждые 10 мин контракта.
Формула по которой считались задействованные контракты
SUMPRODUCT(ABS(D2:D69444)) сумма по модулю в колонке pos.
Пример формулы по которой увеличивали контракты
IF($D69440>F$1;$D69441+1;IF($D69440<-F$1;$D69441-1;$D69441))
отдельно проверялось увеличение на текущем баре и следующем.
Испробовано 14 вариантов, открывать когда больше 1 коня — и когда больше 14.
Эти 24 робота на основе которых считаем открывают вместе максимум 14 коней, поэтому предел 14.
На скрине видно что максимальный эффект после открытия 7 коней, и дальше эффект падает, что наверно можно объяснить тем что когда слишком много роботов в позиции то тренд уже очевиден и вскоре коррекция.
Пока не считал подробно и все показатели, но возможно что эффект ещё больше.
Блин, пипец как мало конечно, я ожидал супер грааль и 30%+
Ок, будем шаманить дальше.
Следующий вариант который я изначально и хотел проверить, но для которого уже наверно недостаточно формулы и придётся писать макрос.
Если больше X роботов в лонге то открываем позицию и закрываем лишнее когда в лонге останутся меньше Y роботов.
Думаю это даст значительно больший прирост.
Может кто уже занимался похожим и подскажет неплохой вариант?
update.
Поздравляю всех кто прочитал и не увидел ошибки. Вы лошары.
На самом деле грааль уже почти получился.
3% эффективности мы получили при увеличении всего на 1 контракт, что составляет очень мало к 24 роботам.
Если посчитать эффективность при добавлении например 24 контрактов то наша базовая прибыль на контракт за 10 минут увеличится на 27%
ЙЕЕЕЕЕЕЕЕЕХУ.
Выкладываю скрин.
если осилите))
— круто!
Результаты греют душу, правда? ))
А еще можно пирамидинг в экселе посчитать и краешком глаза заглянуть в каталог феррари. )))
Некоторый недостаток этих и подобных вычислений в том, что по сути играется «левая» часть графика, но только реализованная в виде (набора) эквити.
Справа, увы, все будет иначе.