Блог им. fehuman
Всех приветствую!
Второй квартал закончился с результатом +47,4%. Общий доход за первую половину года +127,5%. Статистика по месяцам:
Апрель +46%
Май -4,3%
Июнь +4,5%
Общий доход за 2,5 года +469%. Общую кривую можно посмотреть тут
Максимум достигнут 7 мая. От него ушли в просадку на 21,8%. Доход и просадку считаю к балансу на начало года. От достигнутого максимума откатили вниз на 9,15%. Ожидаемое, рабочее снижение после хороших движений. Но могло быть лучше.
Окончательно убедился в том, что необходимо торговать все пятно (облако, веер, площадь) параметров внутри одной идеи. Почему окончательно? Вылезли две проблемы.
Первая. Часть движений на укреплении рубля боты не взяли. Причина – в некоторых алгоритмах параметры смещены в сторону лонга (для SI понятно почему). Удержание шортов более короткое, таким образом, тренды вниз с сильными откатами прошли мимо.
Вторая. Недооценил одну из идей. Вариации строились на основании лучшего набора параметров прошлого года. Не учитывал вариации с результатом похуже, но в целом улучшающих показатели алгоритма в долгосрочном периоде.
Требование к пятну – оно не должно сильно двигаться. Делать такой анализ вручную тяжеловато. Надеюсь, что TSLab в будущем внедрит 3D визуализацию, работа как я понял над этим идет. Некоторые системы решил упростить с 3 до 2 параметров, за счет единого значения для лонга и шорта.
Ниже пример вариаций, составленных на основании более устойчивого пятна. Недооцененный алгоритм.
Зеленым и красным выделены варианты в высоким и низким фактором восстановления.
В 2019 году в торговлю пошли боты по вариациям близкие к № 8 и №12. Такой выбор был сделан на основании их высокой эффективности в прошлом. Как видно, в 2019-ом этот алгоритм меня подвел. Поэтому в 2020-ом решил уменьшить его долю в портфеле. Взяв на вооружение вариацию №1. За текущие 6 месяцев алгоритм себя реабилитировал.
На основании двух параметров составил 16 вариаций (4 на 4), таким образом, чтобы их значения были равномерно распределены по пятну. На 2019 год имеем следующие эктиви и среднеарифметическую. Рисунок ниже.
Тестовый доход 57,4%, просадка 17,4% (баланс систем по итогам дня). Выводы очевидны. В 2020 году торговля всех вариаций значительно сократила бы майскую просадку. Рисунок ниже.
В мае откатили на 9%, а в июне эквити подошла к максимумам. Таким образом, данный подход делает торговлю более стабильной. В текущий момент формирую пятно по остальным идеям. Запуск обновленного портфеля намечен на июль. Однако пустить в бой абсолютно все не получиться из-за ограничений по депозиту). Нужно будет выбирать, но уже более осмысленно.
Вопросы и конструктивная критика приветствуются.
Всем добра и профитов!
а вот копирование может сработать. но как правило это тоже не работает.
В 3 параметрах более-менее легко разобраться по оптимальности (для одного из них выйти на 1-2 оптимальных значения по верхней страничке Шарпа, Рикавери и при достаточном числе сделок; остальные два уже конкретно перебираются и смотрятся вручную). А вот с 4-5 реально уже мозг встаёт.
По поводу Si: торгую только лонг. С учетом того, что при растущем рынке (и падающем Si) трендовухи встают в лонги по акциям, очень много риска, и просадки суммируются. Например, гэп «вдруг» не туда на 5% и приехали на максимальную просадку 2008ого за одну ночь. Если торговать только си без акций, то есть риск, что инструмент сломается/запилит на год-два и вообще перестанешь зарабатывать. Хотя шорт си неплохо компенсирует проблемы лонга, в частности в 2019ом
Из-за кэрри (положительного при шорте и отрицательного при лонге)? Если на споте протестировать, у меня обе стороны примерно одинаково выглядят.
Так-то это естетственно иметь околонулевой год по лонгу си, если бакс падал с 70 до 62 ровненько так.
надо будет затестить. как я раньше не догадался?
В такое может поверить только математик, и то не каждый.
Ни один трейдер с Форекса в это не поверит.
Интересно, но исключительно теоретически)
Об этом я и написал — такие системы будут работать может год, может десять, но рано или поздно они накроются медным тазом с гарантией 101%.
Учесть все сложности рынка парой параметров — идея для идиота.
Или гения.
Например на 100 млн д.б. 2000 контрактов в лонге, значит на 100т.р. д.б. 2 контракта в лонге. Потом станет 3000 контрактов, значит надо докупить 1 контракт до +3.
Да, идеи очень здравые — и про торговать не один набор значений, а некоторый пул, распределенный по пятну и про стабильность пятна.
По поводу перехода от 3D (ну или 3D, как посмотреть) в nD. Да, визуально там не так легко, хотя видел как визуализируют вплоть до 6 измерений, кажется)). Но можно же и не визуально. На вскидку: делаем набор прогонов — брутфорсом по всем параметрам или рандомно выбирая значение каждого параметра из диапазона его значений, дальше берем пятно и считаем по прогонам в пределах пятна средние метрики — шарп там, PF, win_rate и считаем их вне пятна, сравниваем.
А, ну да, наверно сложность найти пятно в этом случае)). Ну тоже можно придумать что-то:
— Можно заходить со стороны 2D, берем попарно параметры, находим стабильные хорошие области, потом пробуем пересечения в качестве кандидатов на «пятно».
— Можно сканировать многомерное пространство — разбиваем все многомерно простанство на области — как квадрат на маленькие квадраты, как куб на маленькие кубики и т.д., просканировали все такие n-мерные части общего пространства, посчитали средние метрики, дальше ищем области где кучно уложены «хорошие» подпространство — это и есть пятно.
А вот когда ты в поиске — т.е. идея то конечно есть, но при программировании паттерна компьютеру не скажешь про «голову и плечи» — ему нужны параметры. И когда ты начинаешь паттерн алгоритмизировать — лично у меня параметров в процессе — с десяток (минимальная просадка после плеча, количество плечей, количество голов и т.п.). Но после постепенной отладки механизма они один за другим улетают в константы. Ибо никак не влияют на саму прибыльность. Но все равно редко когда я останавливаюсь на 2х параметрах, которые и оптимизирую. Знаю, что это плохо, но пока так-с.
Носорог, Ну да, всё так. Только у меня один вопрос: чем параметры, улетевшие в константы отличаются от остальных параметров? Почему они улетают, а другие не улетают?
Вот по параметру не видна какая-то связь с результатами стратегии, если на параметре держится какое-то условие отдельное — я просто его уберу как несостоятельное, не дающее преимущества, если нет возможности — расслаблю по максимуму чтобы кол-во сделок не уменьшал.
Далее, если связь параметра с результатами понятна — мы понимаем где значение параметра надо ставить, оптимизировать глубже — не стоит, ну найдем мы локальные пики — нафига? — Не нужны они нам. Я, получается, вообще не оптимизирую в этой системее координат, я рисечу), если параметр ни о чем — убираю, о чем — оставляю, уже понимая что с ним делать. Ну дальше можно посмотреть взаимосвязь параметров, там что-то может быть, идущее в разрез с логикой, понятной по одному параметру.
В этой парадигме нет какого-то отдельного процесса когда остались 2 параметра и я с ними что-то делаю особенное.
Могу только вкратце рассказать откуда он пошел. Это все привычка — начиная описывать любую компьютерную модель стараться ее максимально параметризировать — т.е. не писать жесткие константы в коде. Как сказал один Гуру компьютерного моделирования — «любая модель — изначально ложь». Имеется в виду, что никакая модель не может 100% повторить объект, который она моделирует. Поэтому с помощью параметров можно более проще подгонять «костюмчик под клиента» (а не сшивать его детали сразу намертво). Важно — я не говорю еще про оптимизацию. Я говорю о кодировании модели (паттерна), который все же далеко не всегда является четким ТехЗаданием, в 50% случаев он лишь в голове и весьма абстрактен (+ эскиз «на салфетке» — т.к. я визуал). Поэтому зачастую бывает так (условно, выдумываю пример на ходу) — «чей-то стал я замечать, что после трех первых свечей после дневного технического перерыва цена движется в сторону второй свечи». Если закодировать это жестко — то проверишь только этот вариант, а параметры будут — тейк и стоп (не придирайтесь, понятно что пример ущербный). А если через переменные (количество свечей, время, тип стопа и тип тейка и т.п.) — то можно будет какие-то родственные паттерны посмотреть, или где-то потом повторно использовать свой код.
Ну и на этапе оптимизации — коль уж использовал переменные — можно ими «нахаляву» поиграться. И может выяснится, что «Грааль» лежал в соседней комнате через дорогу, а не где его искали. Как в том анекдоте про мужика, которого попросили прокомментировать как он выиграл в лотерею (ну не в лотерею, а в карты, и не миллион долларов, а два, и не выиграл, а проиграл).
Еще раз — я не настаиваю. Для меня больше параметров — больше гибкости в исследовании паттерна. Строго говоря, конечно это можно считать частью оптимизации (со всеми вытекающими последствиями). Даже спорить не буду. Но про известную байку про изобретение виагры все же напомню :)
Ну и еще раз подтверждаю — что система без параметров, основанная на конкретной неоптимальности рынка — это потенциально самая лучшая система. Все эти параметры — конечно же не от хорошей жизни.
Перечитал еще раз ваш коммент. Возможно даже мы пишем об одном :). В любом случае спасибо за обмен опытом!
Носорог, Да, это то же самое что я делаю!)) Я так все время и пишу, че вы боитесь параметров, их надо бояться только если взять 100 параметров, сделать миллиард прогонов и выбрать с лучшим профит фактором, а если ты используешь параметры чтобы поприкидывать, посмотреть че-кого, есть вообще смысл в этом? Нет? — Отлично, нафиг с поля. Есть — мм, любопытно, поисследуем дальше.
Кстати забавно, я тоже люблю метафорами и прочими аналогиями говорить).
У Сергея Павлова в телеграм чатике присутствуете? — Если что — там ещё больше обмена опытом можно получить)).
только калябушек и слов много лишних
https://www.comon.ru/user/robot_bsk/strategy/detail/?id=10994
Сначала сделал и начал торговать, потом прочитал статью, друг скинул https://daytradingschool.ru/robert-karver-o-pravilax-torgovyx-sistem-i-opasnostyax-chrezmernoj-optimizacii/
Еще ссылки на эту тему:
https://smart-lab.ru/blog/22291.php
https://russian-trader.com/content/205/?page=2
Ну и последняя, я обучаю этому: Как создать много-параметрического мульти-таймфреймового бота на Qlua https://red-circule.com/courses/11333
Потом цена дальше прет вверх и часть систем из шорта встают в лонг, итого 22 000 контрактов, но на мое дело это никак не скажется. И только когда станет > 25 000 контрактов виртуально, только тогда докупится 1 контракт.
Поэтому ИТА низкая.
На самом деле лучше была бы ИТА побольше, т.к. чем больше депо, тем чётче эквити повторяет суммарную виртуальную эквити
А.Г. писал, что нужно минимум 3-4 контракта, чтобы торговалось и я с ним согласен.
Всем добре. Кирилл Глухов, Где-то раскрываются данные понятия, имею ввиду есть какое-то достойное чтиво, где об этом можно почитать? Спасибо