VolGuard Volatility Risk Manager
- Утилиты
- Версия: 1.0
- Активации: 20
Почти всё, что продаётся для MetaTrader, предсказывает направление. Я проверил, возможно ли это вообще: тринадцать лет EURUSD и золота, walk-forward проверка и контрольный прогон на случайно перемешанных метках.
Направление вышло между 48 и 51 процентом. На золоте те же модели дали 53,4 процента на перемешанных метках - выше, чем на настоящих данных. Именно так переобученная система выглядит изнутри, и именно поэтому кривая бэктеста не является доказательством.
Размер завтрашнего движения - другой вопрос, и на него ответ есть. VolGuard построен на этом ответе и больше ни на чём.
ЧТО ОН ДЕЛАЕТ
Каждый день, на закрытии дневной свечи, VolGuard прогнозирует, сколько рынок пройдёт завтра, и превращает прогноз в одно число: множитель, на который нужно умножить размер позиции.
День, который по прогнозу пройдёт вдвое больше обычного, получает половину размера - так деньги под риском остаются там, куда вы их положили, вместо того чтобы тихо удвоиться. Спокойный день получает немного больше. Выше выбранного вами потолка он говорит не торговать вовсе, потому что маленькая позиция в бурной сессии - всё равно позиция в бурной сессии.
Множитель намеренно ограничен с обеих сторон. Без ограничения очень спокойный прогноз раздавал бы пятикратное плечо, а день, когда спокойный прогноз ошибается, - именно тот день, который имеет значение.
ПАНЕЛЬ
Состояние одним словом: NORMAL, REDUCED, BLOCKED или WARMUP. Затем прогнозируемый дневной диапазон в ценовых единицах символа, типичный диапазон, с которым он сравнивается, их отношение и лотный множитель.
Панель нарисована достаточно крупно, чтобы читаться через комнату, и масштабируется.
КАК ЕЁ ЧИТАЕТ ВАШ СОВЕТНИК
Решение публикуется как глобальная переменная терминала, поэтому всё, что работает на вашей платформе, может её использовать, не будучи переписанным под VolGuard:
double VolGuardMultiplier(const string symbol)
{
const string name = "VolGuard_" + symbol + "_mult";
if(!GlobalVariableCheck(name))
return(1.0);
return(GlobalVariableGet(name));
}
lots = lots * VolGuardMultiplier(_Symbol);
if(lots <= 0.0) return;
Если VolGuard не запущен, функция вернёт 1.0 и ваш расчёт объёма останется нетронутым. Ноль означает BLOCKED. Рядом публикуются VolGuard_<symbol>_state и VolGuard_<symbol>_ratio.
Если вы торгуете руками, считайте лотный множитель с панели и умножайте.
ЧТО БЫЛО ИЗМЕРЕНО
Вне выборки, с сентября 2022 по август 2026, на данных, которые никогда не использовались при построении. Модель переобучается каждые 21 день, и каждый день оценивается моделью, которая его не видела. Это то, что продукт делает на самом деле, а не то, что можно заставить сказать бэктест.
Золото, 1031 день: ранговая корреляция прогноза и результата +0,599. Очевидное сравнение - взять сегодняшний диапазон как прогноз на завтра - даёт +0,450. R-квадрат по логарифму диапазона +0,411.
EURUSD, 1039 дней: +0,511 против +0,403 у того же сравнения.
Число, которое важно на практике: на золоте треть дней, которую модель назвала бурной, прошла в 2,07 раза больше, чем треть, названная спокойной. На EURUSD - в 1,75 раза.
Все цифры выше - относительные диапазоны, то есть диапазон, делённый на цену. Золото прошло с 1700 до 4300 за этот период, поэтому абсолютные диапазоны растут от одного лишь уровня цены; в абсолютных единицах тот же тест показывает 4,35 раза, и это завышено. Честная цифра - та, что напечатана здесь.
ЧТО ВНУТРИ
Гребневая регрессия. Двенадцать признаков, тринадцать коэффициентов, решение в замкнутой форме.
Градиентный бустинг и нейронные сети были испытаны оба и оба проиграли на обоих символах: на золоте +0,683 у линейной модели против +0,639 и +0,653 у двух остальных. Волатильность в логарифмическом пространстве почти линейна, и сложные модели тратят свою ёмкость на подгонку шума.
Поэтому здесь нет файла ONNX, нет двоичного ресурса, нет скачиваемых весов, нечему не загрузиться и нечему устареть на полке.
ОН УЧИТСЯ НА ВАШЕМ СИМВОЛЕ И У ВАШЕГО БРОКЕРА
В этом продукте не поставляется ни одного коэффициента. При запуске VolGuard обучает модель на дневной истории того графика, к которому прикреплён, из ленты вашего собственного брокера, и переобучает её каждые 21 день во время работы.
Этот период не украшение. Модель, обученная один раз и оставленная в покое, дала +0,325 там, где та же модель с переобучением по ходу дала +0,683. Режимы волатильности смещаются, и замороженная модель перестаёт работать, никогда об этом не объявив.
ЧЕГО ОН НЕ СДЕЛАЕТ
Он не скажет вам, куда пойдёт рынок, потому что это измерено и это невозможно. Никакой сетки, никакого мартингейла, никакого усреднения, никаких обещаний доходности.
Он не открывает позиций. По умолчанию он их и не закрывает: блокировка ставит множитель в ноль и сообщает вам об этом. Закрытие открытых сделок при блокировке - настройка, которую вы включаете сознательно, потому что ни один инструмент не должен закрывать чужие позиции без спроса.
Ему нужно минимум 300 дневных баров по символу, а 1500 и больше - лучше.
НАСТРОЙКИ
Число дневных баров для обучения, регуляризация ридж, интервал переобучения. Минимальный и максимальный лотный множитель, отношение, начиная с которого торговля блокируется, и включена ли блокировка вообще. Закрывают ли заблокированные дни открытые позиции и ограничено ли это одним magic number. Положение и масштаб панели.
Значения по умолчанию - это та конфигурация, которая прошла проверку.
РАБОТАЕТ С
Любым символом с дневной историей, любым таймфреймом графика, счетами hedging и netting и любым советником, к которому вы можете добавить одну строку.
