Блог им. Eth_algotrader

Как я перестал волноваться о просадках и начал их ждать

Главный враг всех алготрейдеров, как известно, просадка. Чего они только не делают, чтобы ее избежать!
— диверсифицируют свою стратегию по 30 инструментам на 10 таймфреймах с 15 наборами параметров
— мучают оптимизатор миллиардами прогонов до тех пор, пока все убыточные сделки не исчезнут
— убирают стопы, включают сетку и добавляют мартина, чтобы просадок не было видно ну хотя бы по балансу
— ну и продолжают, конечно же, поиск Грааля, который обязательно должен расти под 45 градусов вверх 365 дней в году...

Полагаю, все (или почти все) эти приемы либо очень сильно мешают им зарабатывать, либо ведут к неизбежному сливу. Потому что стратегия, которая будет стабильно прибыльной из года в год и имеет ограничение мах. убытка, НЕ МОЖЕТ быть без просадок. Чем сильнее пытаешься от них избавиться, тем выше подгонка под историю, и, как следствие, вероятность слива.

Полагаю, что проблема просадок заключается не в несовершенстве торгового алгоритма, а в неправильном управлении капиталом. Что делает типичный алготрейдер, когда его счет растет? Разумеется, постепенно повышает торговый объем. А что обычно случается со всеми системами (особенно трендовыми) после того, как они дают существенную прибыль? Конечно же, они уходят в просадку! Потому что после любого сильного движения на рынке наступает консолидация, в которой система теряет.

Что получаем в итоге:
период хорошего для системы рынка --> рост счета --> повышение объема --> период плохого рынка --> заход в просадку на повышенном объеме --> повышенный размер просадки --> снижение размера счета --> снижение объема --> более длительный выход из просадки на малом объеме.

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

И здесь конечно же вспоминается нетленная картинка:

Как я перестал волноваться о просадках и начал их ждать
Ведь ее можно применять не только к торговле, но и… к управлению капиталом в алготрейдинге!

Например, так:
1. Начнем торговлю фиксированным лотом.
2. Как только будет достигнута минимальная величина просадки, поднимем лот до нового значения баланса (максимального, до начала просадки)
3. Если просадка еще значительно углубится, поднимем лот еще раз.

Тогда сценарий полностью поменяется:
период хорошего для системы рынка --> рост счета --> период плохого рынка --> заход в просадку на малом объеме --> сниженный размер просадки --> снижение размера счета --> повышение объема --> более быстрый выход из просадки на повышенном объеме.

Ладно, хватит болтать, давайте проверим все это на цифрах! Берем вот такую систему за 6 лет (2018-2024) на крипте, начинаем с депозита 8000$ и торгуем фиксированный лот=4 (фикс. размер позиции, если быть точнее, потому что лот конечно же нормируется на цену, иначе риск будет плавать с изменением цены):
Как я перестал волноваться о просадках и начал их ждать
1205 сделок. Получаем с учетом комиссий 115 000$ прибыли при просадке 4000$, ФВ=28.5. Фикс.лот — это своего рода эталон для анализа торговых систем. Любой метод реинвестирования повысит прибыль, но ухудшит отношение прибыли к просадке (ФВ).

Начнем с классического метода, % от депозита. Будем торговать 4 лота на каждые 20 000$ баланса:
Как я перестал волноваться о просадках и начал их ждать
Прибыль:  1 686 000 $
Мах просадка: 162 000 $
ФВ: 10.4

Прибыли конечно больше, но фактор резко упал. Качество снизилось. 

Что если мы не будем снижать объем на просадке, чтобы выйти из нее быстрее? Т.е. лот зависит от мах.баланса, а не от текущего:
Как я перестал волноваться о просадках и начал их ждать
Это конечно более агрессивный подход, поэтому, чтобы адекватно сравнить его с предыдущим, я снизил стартовый риск таким образом, чтобы получить в итоге такую же прибыль. Тогда мы можем сравнить, какой подход даст меньшую просадку.

Прибыль:  1 690 000 $
Мах просадка: 159 000 $
ФВ: 10.6

Просадка совсем чуть-чуть ниже. Получше, но не убедительно. Давайте попробуем теперь повышать объем до заданного при достижении определенного уровня просадки. Какого? Посмотрим на график просадок фикс.лота (просадки умножены на 10 для масштаба):
Как я перестал волноваться о просадках и начал их ждать

Мы видим, что уровень в 800$ захватит подавляющую часть заметных просадок. А уровень 1500$ мог бы быть дополнительным, т.к. он захватывает бОльшую часть более глубоких. Пробуем повышать лот на просадке 800 (для этого мы, разумеется, виртуально считаем эквити на фикс.лоте), опять нормируя риск, чтобы добиться одинаковой прибыли:
Как я перестал волноваться о просадках и начал их ждать
Прибыль:  1 680 000 $
Мах просадка: 148 000 $
ФВ: 11.4

Совсем другое дело! Видим значительно повышение ФВ и заметное снижение мах. просадки. 

Попробуем повышать риск на просадке в 1000:
Как я перестал волноваться о просадках и начал их ждать
Прибыль:  1 680 000 $
Мах просадка: 153 000 $
ФВ: 11

Результат похуже. Пробуем повышать на 1200:
Как я перестал волноваться о просадках и начал их ждать
Прибыль:  1 682 000 $
Мах просадка: 156 000 $
ФВ: 10.8

Еще хуже. На 1500:
Как я перестал волноваться о просадках и начал их ждать
Прибыль:  1 687 000 $
Мах просадка: 166 000 $
ФВ: 10.2

Снова ухудшение! Очень похоже, что излишняя консервативность не позволяет использовать потенциал стратегии. В последнем варианте частота реинвестирования получается 1-2 раза в год. Видимо, это слишком мало.

А что если на первом значении просадки (800) повышать риск только до половины мах.баланса, а на втором (1500) до максимального? Пробуем:
Как я перестал волноваться о просадках и начал их ждать
Прибыль:  1 685 000 $
Мах просадка: 151 000 $
ФВ: 11.1

Тоже хороший результат, очень близкий к лучшему (1 просадка на 800), но все же слабее.

Сведем все результаты в таблицу:
Как я перестал волноваться о просадках и начал их ждать
Как видим, лучший результат при разовом реинвесте на просадке 800. Он заметно обходит стандартный. Ближайший к нему на просадках 800 и 1500.

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

А сейчас оставлю вам код во включаемом файле MQL5, чтобы вы могли попробовать эти стратегии в своих советниках. В самом файле BalanceIncOnDD.mqh (его разумеется в папку /include) выберите из списка нужный вам режим ММ и задайте значения для 1й и 2й просадок:

enum LotCalcMode{AdjLotByBalance, AdjLotByMaxBalance, AdjLotIn1DD, AdjLotIn2DDs};  //варианты ММ

LotCalcMode MMmode=AdjLotByBalance;    //режим ММ
#define DDsize1 800   //просадка для первого увеличения лота
#define DDsize2 1500   //для второго
Включите его в код своего советника:
#include <BalanceIncOnDD.mqh>
В функцию OnTick() добавьте расчет ММ по текущему балансу:
void OnTick()
{     
    LookForBalanceDDs(BalanceNorm);        
}
где BalanceNorm — величина баланса, на которую нормируется ваш лот (при Lot=4 торгуется по 4 лота на каждые BalanceNorm баланса, в моем случае +-20k).

Лот для сделки установите следующим выражением:
double currlot=NormalizeDouble(Lot*PriceNorm/Bid, 2);
if(AdjustLotByBalance)currlot=NormalizeDouble(currlot*BalanceToCalcLot/BalanceNorm, 2);
где AdjustLotByBalance это режим роста лота с ростом баланса, а PriceNorm — цена актива, по которой нормируется лот (у меня 3000 для Эфира).

Наконец, в функцию OnTester() добавьте отрисовку графиков с просадками (будет в визуализаторе) и вывод всех случаев появления просадок (в логах) указанных размеров:
double OnTester()
{
   OnTesterBalance(!AdjustLotByBalance);
}
Файл с кодом оставляю в блоге mql, здесь нельзя прикрепить его к посту.

В следующей записи я расскажу, как этот подход показал себя в реальной торговле.
★11
33 комментария
«Как я перестал беспокоиться о просадках, начал их ждать, а на время ожидания пошел работать на завод» © Карпов

С уважением
Мальчик buybuy, да пока как-то без надобности :))
avatar
а только в крипте такие хорошие результаты? Думаю с форексом, фондой или товарами будет не так хорошо…
avatar
AntiKukl, да, только в крипте. Это же самый волатильный актив. Идеально для трендовых систем.

На форексе подобное лишено смысла. На золоте, индексах тоже плюсует конечно, но по ср. с криптой даже смысла нет торговать…
avatar
просто крипту еще можно просто торговать, пока она не эффективна, но это же не вечно
avatar
AntiKukl, ну вот Сишка — в разы более институционализированный и объезженный алгошниками актив, чем крипта. Она должно была уже лет 10 стать эффективной. И нет же, преспокойно торгуется трендовухами, потому что валюта развивающейся страны + кризисы всякие = волатильность.

И вот что-то сильно я сомневаюсь, что с криптой по-другому будет. Точно не в ближайшие лет 10. А если волатильность и начнет снижаться, всегда можно будет найти другую монетку, которая скачет бодрее. На BNB например результаты почти такие же (без переоптимизации).
avatar
а сишку легко торговать? наверное очень долгосрочно или на тестах, потому что как только открыта позиция, то против тебя уже работают ИИ сбера ))
avatar
AntiKukl, руками не имею понятия. А алгоритмами — почти все нормальные трендовые стратегии с хорошим треком и результатами крутятся на сишке. Здесь на СЛ много примеров.
avatar
Непонятно, зачем фиксированный размер называть фиксированным лотом и постоянно уточнять, что это размер а не лот.

По самой теме: слишком мало жиру на еще один параметр. RC (aka ФВ) неустойчивый критерий оптимизации, слаб к подгонке.
Кирилл Гудков, >Непонятно, зачем фиксированный размер называть фиксированным лотом и постоянно уточнять, что это размер а не лот.

Это привычка с форекса)) На бирже это называют фикс. размер? Ок, буду знать))

>По самой теме: слишком мало жиру на еще один параметр. RC (aka ФВ) неустойчивый критерий оптимизации, слаб к подгонке

Я не использую шарп, потому что он в разы скачет в MT5, когда просто меняешь размер исходного депо. Это же не нормально. И вообще он очень странно работает при оптимизации...

И вообще я не использую оптимизацию (почти). По ФВ я оцениваю результат. Настраиваю систему я другим образом.

А какие параметры, более устойчивые к подгонке, вам известны?
avatar
Eth_algotrader, с шарпом есть проблема, его многие тестеры считают как-то через задницу. Ulcer performance index — неплохой критерий. Ну и на среднюю сделку надо посматривать, если стратегия суетлива. Чтобы не получилось как с одним товарищем, который в том году настрочил тут статей о успешном успехе, а потом куда-то растворился.
Кирилл Гудков, спасибо за советы, поизучаю.

Товарищ, как я понимаю, забыл учесть комиссии :))) Ну и плюс там специфика самого подхода в том, что такое страшно начинать торговать… (если я правильно понимаю, о ком вы).
avatar
Ого! 1 680 000 $! В следующем посте покажете свой Феррари?
avatar
Ivan Smirnov, следующий пост должен быть через 6 лет?
avatar
1205 сделок за 6 лет. Получается в среднем 1 сделка за 2 дня. Но за 2 дня крипта может поменять направление движения несколько раз. Какая средняя длительность одной сделки? Какой процент прибыльных сделок?
avatar
MatrixLis, ну обычно идет некий диапазон, который если достаточно узкий, то перезаходов не происходит, если достаточно широкий, то сделки закрываются в небольшую прибыль/в 0, и только если что-то среднее (пила), то уходит в просадку. А затем из него выход куда-нибудь на +-15% цены, и все отыгрывается.

Статистика по сделкам полная вот, прибыльных 43%.


Среднее время удержания сделки 21 час:

avatar
Так это ж мартингейл, давно известный подход.
avatar
bobef, тоже об этом подумал. Но прочитал в комментах, что бэктест 6 лет. И кочерги за это время так и не случилось ) Интересно бы глянуть из МТ5 график занятых средств
avatar
Андрей К, 
это не мартингейл. чувак изобрел реинвест и в оптимизаторе нашел лучшие варианты подгона коэффициентов на истории.
Дмитрий Овчинников, такого варианта реинвеста я пока в алготрейдинге не видел. Ну, с тестами разных стратегий по кр. мере.
avatar
Андрей К, так ведь загрузка депозита в нижнем окне под эквити. Или вы о другом?
avatar
Eth_algotrader, ага, наверное про это. Я отвык от метака, забыл что там выводит
avatar
bobef, нет, здесь в каждой сделке короткие стопы. Что касается доливок в эквити, то они: а) линейны по размеру, б) ограничены 2мя.

Так что это просто аналог стратегии «вход в сделку частями».
avatar
Один шаг из сеточного метода. Повышаем доху при (более вероятном) положительном исходе, повышаем риск катастрофы при смене режима рынка. 
Напрашивается включение в портфель разнородных систем на разнородных активах.
avatar
SergeyJu, в общем и целом да, но идея в том, что на крипте невозможно не заметить, когда рынок совсем сдуется и перестанет давать тренды. Такое было несколько раз, и все признаки там очень характерные.

Плюс логика самой стратегии, которая максимально понятная и простая, для того чтобы на трендовом рынке скорее всего заработать.
avatar
Очень ёмкая, рабочая концепция. Сам точно так же «гарцую» между фиксированным и динамичным рисками. Пришёл к выводам, схожим с выводами автора; успешно использую!)

avatar
Ed Khan, а как моменты для поднятия рисков определяете?
avatar

Eth_algotrader, максимально по-разному)

Самый частый способ — просто месячная отсечка, а не глубина просадки. И какие-то действия я предпринимаю, только если на начало нового месяца имею просадку (неважно, -1% или -10%).

Если ставить календарные отсечки, а не по глубине просадки, всё будто бы становится сглаженнее. И обычно успевает измениться негативный характер рынка)

avatar
Ed Khan, очень неожиданный результат. А у вас алго? На каком рынке, если не секрет, и на каком примерно ТФ?
avatar

Eth_algotrader, да, исключительно алго) Своя самописная платформа. Крипта. ТФ — обычно использую не единичные, а смешанные (индексные) на одном счёте. Почти всегда миксую только три: D1, H4, H1.

avatar
очередные расчеты на исторических данных показывают очередные фантастические результаты верующим баранам, мечтающим о легком богатстве))



писал о честном тестировании алгоритмов здесь
avatar

GOLD, исторические результаты здесь, полагаю, даны в подтверждение гипотезы, озвученной выше. А не вокруг них всё строилось.

Нужно различать.

Или вам больше нравятся гипотезы, озвученные без какой-то подтверждающей визуализации?) 

avatar
GOLD, была у меня мысль специально для таких вот небаранов написать, что не надо слишком сильно возбуждаться, когда показывают большие циферки, но решил забить и просто посмотреть на стандартный смартлабовский карнавал «ну-ну, давай, покажи мне свои >30% годовых».

Разницу между тезисом о граальности системы и тезисом о преимуществе одних способов реинвеста перед другими небараны, видимо, тоже не улавливают.

PS: Что самое смешное, система на реале торгует уже 9 месяцев так же, как на тестах.
avatar

теги блога Eth_algotrader

....все тэги



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