Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Скрипты

EdgeMeter - does your entry signal beat the spread? - скрипт для MetaTrader 5

Просмотров:
13
Рейтинг:
(1)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу


EdgeMeter отвечает на один вопрос, касающийся любого сигнала входа:


принимая во внимание транзакционные издержки, приносит ли этот сигнал прибыль?

Он не размещает ордеров. Он анализирует историю, оценивает ваш сигнал на каждом закрытом
баре и выводит вердикт.


ПОЧЕМУ Я ЕГО НАПИСАЛ

Я потратил месяц на разработку советника с сеткой на паре XAUUSD M1. Я зафиксировал стоп-лосс, добавил
плавающий лимит убытка, выход при развороте и максимальный срок нахождения в корзине. Он продолжал приносить убытки.

Когда я наконец проанализировал сам сигнал ВХОДА, ответ занял тридцать
секунд:

среднее движение после сигнала за 15 минут: +0,04
сплаченный спред за круглый ход: 0,26

Никакая логика выхода не исправит это. Деньги были потеряны при входе, и каждый час, который я
тратил на выходы, были потрачены впустую. Именно для предотвращения этого и существует этот скрипт.


ЧТО ОН ОТЧИТЫВАЕТ

Для каждого указанного вами периода удержания:

- валовое преимущество: среднее благоприятное изменение цены после появления сигнала
- чистый результат после вычета стоимости, моделируемый по одной позиции за раз
- t-статистика, рассчитанная на основе НЕПЕРЕСЕКАЮЩИХСЯ сделок
- доля прибыльных месяцев
- максимальное падение

Затем проводится аналогичная оценка на СЛУЧАЙНОМ КОНТРОЛЬНОМ НАБОРЕ: с той же частотой открытия позиций,
направление, определяемое подбрасыванием монеты. Случайный вход должен приносить убыток ровно в размере транзакционных издержек,
ни больше, ни меньше. Это позволяет добиться двух целей. Во-первых, доказывается правильность работы симулятора,
и позволяет определить уровень фонового шума. Если ваш сигнал явно не превосходит эти
строк, он не несет никакой информации.


ЛОВУШКА ПЕРЕКРЫТИЯ

Именно эта часть подвела меня, как и большинство людей.

Следующие друг за другом сигналы имеют большую часть общего переднего окна. Горизонт в 60 баров
, отбираемый по каждому бару, даёт окна, которые перекрываются 59 способами. Рассматривая их как
независимые, приводит к завышению t-статистики примерно на корень квадратный из горизонта.

Мой собственный сигнал при таком подходе показал t = 3,32, что выглядит убедительно. На действительно
независимых выборках значение t составляло 1,20 — что неотличимо от шума. EdgeMeter
моделирует по одной позиции за раз, поэтому сделки, о которых он сообщает, не пересекаются, и
t-статистика является достоверной.


КРИТЕРИИ ПРОХОЖДЕНИЯ

Скрипт проверяет три критерия, и все три являются обязательными:

[1] чистая прибыль по сделке > 0 после вычета затрат
[2] |t| > 2
[3] не менее 3 прибыльных месяцев из 4

Определите свои критерии, прежде чем смотреть на цифры. Принимать решение после просмотра — это
приводит к тому, что убыточная система попадает на реальный счет.


КАК ПРОТЕСТИРОВАТЬ СВОЙ СИГНАЛ

Откройте файл и отредактируйте две функции в разделе USER SECTION. Ничего больше менять
.

bool UserInit() — создайте дескрипторы ваших индикаторов и загрузите их
буферы с помощью LoadBuffer() / LoadBufferB()

int UserSignal(int i) — оцените закрытый бар i
возвращайте +1 для покупки, -1 для продажи, 0 для ожидания

Все массивы индексируются так, что 0 = самый старый бар. Это противоположно обычной
индексации рядов, и это сделано намеренно: в этом случае возвращаемое значение просто равно
индекс + горизонт, что устраняет целый класс ошибок со знаком.

Вход моделируется по цене открытия Open(i+1) следующего бара. Никогда не считывайте данные бара i+1 или более поздних
внутри UserSignal — это смещение, связанное с «заглядыванием в будущее», и из-за него бесполезный
сигнал выглядеть блестящим.

По умолчанию UserSignal представляет собой пересечение скользящих средних двух таймфреймов, которое сохраняется в качестве
рабочим примером. Замените его.


НАСТРОЙКА ЗАТРАТ

InpSpread, InpCommission и InpSlippage указаны в единицах PRICE, а не в пунктах, и
они являются самыми важными входными параметрами в скрипте. Получите их из своего собственного
счета, а не из рекламных данных брокера.

Если у вас есть журнал исполнений с реальной или демо-торговли, используйте среднее
среднее значение. Если у вас его нет, возьмите типичный спред, который вы видите на графике, и добавьте
запас на проскальзывание, вместо того чтобы считать, что оно равно нулю. Демо-сервер будет показывать
практически нулевой проскальзывание; это особенность демо-сервера, а не рынка.


ТРЕБОВАНИЯ

Перед запуском загрузите достаточное количество исторических данных: откройте график по вашему инструменту и
таймфрейм, а затем прокрутите график как можно дальше влево. Скрипт сообщит вам, если данных
. Менее 30 сигналов означают, что любой результат является лишь отдельным случаем, а не доказательством.


Использование и модификация разрешены.

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/76316

Adaptive Volume Profile Node Tracker Adaptive Volume Profile Node Tracker

Создает скользящий профиль объёма, адаптирующийся к волатильности, за настраиваемый период и отображает точку контроля (POC), верхнюю и нижнюю границы зоны цен, а также статистически значимые узлы высокого и низкого объёма (HVN/LVN) непосредственно на графике.

Multi-Symbol Correlation Divergence Meter Multi-Symbol Correlation Divergence Meter

Отслеживает скользящую корреляцию между текущим символом на графике и выбранным эталонным символом и сигнализирует о моменте их расхождения при статистически значимом расширении ценового спреда.

Dynamic Session Range Sweep Detector with Liquidity Zone Marking Dynamic Session Range Sweep Detector with Liquidity Zone Marking

Отслеживает диапазоны сессий в Азии, Лондоне и Нью-Йорке, фиксирует каждый из них при закрытии сессии и выделяет настоящие всплески ликвидности — «фитиль», пробивающий зафиксированный максимум или минимум и закрывающийся обратно внутри него — с помощью стрелочного сигнала и заштрихованной зоны реакции. Не перерисовывается, работает с любыми инструментами и на любых таймфреймах.

YURAZ_MCCH YURAZ_MCCH

Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.