Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 19
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Идея
Если вы запускаете несколько советников на одном счете, важно не то, сколько приносит каждый из них, а то, насколько их совокупный риск компенсирует друг друга.
Оцените самый убыточный период для каждой системы в отдельности и сложите эти цифры. Затем оцените самый убыточный период для всего счета за тот же период. Второе число всегда будет меньше. Насколько меньше — это единственный достоверный показатель вашей диверсификации, и ни один отчет торговой платформы его не показывает.
Этот скрипт измеряет именно это. Он считывает историю ваших закрытых сделок, группирует их по «магическим номерам» и выводит четыре показателя.
Что он показывает
1. По каждой системе. Количество сделок, чистый результат и максимальное падение капитала для каждого «магического номера», прошедшего фильтр по минимальному количеству сделок.
2. Компрессия. Сумма всех просадок отдельных систем по сравнению с просадкой совокупного счёта и соотношение между ними. Соотношение, близкое к 1, означает, что системы падают синхронно, и у вас одна стратегия в нескольких экземплярах. Высокое соотношение означает, что их неудачные периоды приходятся на разные даты.
3. Корреляция. Полная матрица парной корреляции Пирсона по прибыли и убыткам за период, среднее абсолютное значение rho, доля пар с коэффициентом ниже 0,30 и пара с наибольшей корреляцией по названию. Та же матрица отображается на графике в виде тепловой карты: бледный цвет означает, что две системы не влияют друг на друга, красный — что они выигрывают и проигрывают вместе, синий — что они противоположны.
4. Метод Монте-Карло. Те же результаты за период, перетасованные в новый случайный порядок несколько тысяч раз. История дала вам одну последовательность месяцев. Рынок мог бы предоставить те же месяцы в любом другом порядке, и при этом самый неудачный отрезок меняется. Скрипт выводит данные о просадке на 50-, 90- и 95-м процентиле этого «облака» и показывает, где в его пределах находится ваш отдельный исторический путь. Большинство бэктестов попадают в благоприятную половину.
Все данные также записываются в формат CSV, так что матрицу можно отобразить в виде тепловой карты в электронной таблице.
Как читать результаты
Коэффициент сжатия — это главное. В два, три, десять раз: вот что дала вам диверсификация в вашей собственной валюте и на ваших собственных сделках.
Среднее абсолютное значение ро (rho) показывает, действительно ли портфель разнообразен или только кажется таковым. Значения ниже 0,15 по многим парам свидетельствуют о настоящем портфеле. Значения выше 0,40 означают, что вы используете вариации одной идеи.
Процентиль по методу Монте-Карло — это самый неприятный показатель. Если ваш исторический просадка находится на 60-м процентиле «облака», то две трети альтернативных сценариев развития событий были для вас более благоприятными, чем тот, который произошёл на самом деле. Планируйте размер позиции, ориентируясь на «хвост» «облака», а не на отдельный сценарий.

Входные данные
- InpGrain — степень детализации для рядов прибыли и убытков: ежемесячно, еженедельно или ежедневно. По умолчанию установлено значение «ежемесячно», что является самым безопасным вариантом: корреляции, рассчитанные на основе редких ежедневных интервалов, сдвигаются к нулю из-за пустых ячеек. Скрипт выдает предупреждение, если выбранная степень детализации приводит к появлению слишком большого количества пустых интервалов.
- InpMCRuns — количество перетасовок по методу Монте-Карло. По умолчанию — 2000. Значения ниже 100 или выше 100 000 ограничиваются.
- InpMinTrades — «магические числа», при меньшем количестве закрытых сделок, чем указано, они исключаются из отчёта, а также из совокупного портфеля, чтобы сравнение оставалось сопоставимым. По умолчанию — 20.
- InpRefBalance — базовый баланс, используемый исключительно для выражения просадки по методу Монте-Карло в процентах. По умолчанию — 10000.
- InpExportCSV — записывает таблицу прибылей и убытков за период и матрицу корреляций в папку MQL5\Files. Имена файлов имеют префикс PCA_, чтобы они никогда не перезаписывали экспортные данные других инструментов.
- InpDrawPanel — выводить тепловую карту на график. При значении «false» любая панель, оставшаяся от предыдущего запуска, удаляется.
- InpMaskMagics — присваивает системам метки S01, S02 и т. д. вместо вывода реальных магических чисел. Полезно для скриншотов.
- InpPanelX, InpPanelY — смещение панели от левого верхнего угла в пикселях.
- InpPanelMaxPx — максимальная сторона сетки тепловой карты. Размер ячейки адаптируется к количеству систем; для небольших портфелей ячейки становятся больше.
- InpPanelMaxSys — при превышении этого числа систем панель пропускается, поскольку сетке потребуется больше прямоугольников, чем график может комфортно перерисовать. При экспорте в CSV по-прежнему сохраняется полная матрица. По умолчанию — 64.
- InpMCSeed — значение 0 генерирует случайное начальное число, любое другое значение делает процентили метода Монте-Карло повторяемыми. Используйте фиксированное начальное число, если рисунок будет включён в отчёт.
Примечания и ограничения
Просадки рассчитываются на основе результатов закрытых сделок с выбранной степенью детализации. Они не включают колебания открытых позиций, которые бывают более значительными — часто на треть или более в системах с несколькими инструментами. Рассматривайте эти цифры как реализованную просадку и помните, что просадка вашего собственного капитала была больше.
Учитываются как сделки входа, так и сделки выхода. Большинство брокеров взимают комиссию и при входе, и учет только сделок выхода незаметно занижает затраты.
«Магическое число» 0 включается, если оно проходит фильтр сделок, и скрипт отмечает это в журнале. В большинстве терминалов в эту категорию попадают ручные сделки и любые советники, оставленные с магическим числом по умолчанию, поэтому это не обязательно одна система.
Для того чтобы корреляция имела какой-либо смысл, требуется достаточное количество периодов. Две системы с шестимесячным перекрытием дадут какое-то число, но оно не будет достоверным.
Объекты панели остаются на графике после завершения работы скрипта, что как раз и нужно для создания скриншота. Запустите скрипт ещё раз с параметром `InpDrawPanel`, установленным в значение `false`, чтобы удалить их.
Чего он не делает
Он никогда не открывает, не изменяет и не закрывает ордера. Он ничего не прогнозирует, не генерирует сигналы и не подключается к каким-либо сетям или внешним сервисам. Он считывает вашу историю и сообщает, что в ней содержится.
Чистый MQL5, один файл, без внешних библиотек.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/75606
Sessionvolatilityheatmap
Отображает средний диапазон цен за час торгового дня в виде тепловой карты на графике, а также затенение за свечами, соответствующее азиатской, лондонской и нью-йоркской сессиям — так что вы сможете видеть, когда инструмент действительно движется, а не просто гадать.
GoldLondonBreakout
На паре XAUUSD фиксирует позицию в диапазоне азиатской сессии, а затем размещает пару OCO на прорыв (BuyStop/SellStop) к открытию лондонской сессии со стопами, рассчитанными на основе ATR, и размером позиции, определяемым в процентах от риска. Никаких индикаторов, никаких субъективных решений — диапазон измеряется, а не угадывается.
SHK Heikin Ashi MACD Signal Arrows
Индикатор для графиков MetaTrader 5, который рисует свечи Хейкин-Аши, отображает подтверждающие стрелки на покупку и продажу, обеспечивает опциональную фильтрацию дивергенции гистограммы MACD и настраиваемые оповещения.
YURAZ_MCCH
Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.