Execution Cost Audit
- Утилиты
-
Carlos Macaya Rodriguez
I build tools for MetaTrader 5 — trade and risk management utilities, panels, and diagnostics that work with the terminal's own data. - Версия: 2.0
- Активации: 10
Вы когда-нибудь задумывались, во что на самом деле обходится вам торговля? Execution Cost Audit читает закрытую историю, которая уже есть на вашем счёте, и говорит прямо: какой спред вам котировали в момент каждого исполнения, насколько проскользнуло каждое исполнение и что добавили сверху комиссия и своп. Ничего не нужно устанавливать заранее, ничего не нужно ждать. Он только читает и никогда не отправляет ордер.
Почему я это сделал
Я хотел знать, сколько мне стоит моя собственная торговля, и все инструменты, которые я находил, отвечали одинаково: установите и возвращайтесь через несколько недель. Но история уже была здесь, на моём счёте, с каждой сделкой и каждой ценой. Спред в момент каждого исполнения лежал в тиковом архиве брокера. Все детали существовали, никто не собирал их вместе.
Поэтому я написал то, что это делает. Перетащите его на график, и он прочитает закрытую историю, которая у вас уже есть, восстановит каждую полную сделку из её deals и найдёт в тиковом архиве, что котировалось в ту миллисекунду, когда произошло исполнение, и как далеко оно легло от цены, которую запрашивал ордер. Комиссия и своп берутся из самих сделок. Через минуту вы знаете, во что вам обошлись последние девяносто дней, или последний год, или всё, что помнит терминал.
Он никогда не открывает, не изменяет и не закрывает ордера. В коде нет ни одной торговой функции, и включённый автотрейдинг ему не нужен.
Что он вам сообщает
- Спред, каким он котировался в момент каждого исполнения. Не тот, что сейчас на экране, не средний по брокеру и не поле спреда бара M1, которое усредняет целую минуту, включая ту, в которую он расширился.
- Проскальзывание как разницу между тем, что запросил ордер, и тем, что он получил. Запрошенная цена для рыночного ордера, уровень для стопа или лимита. Знак выбран так, что положительное число всегда означает: против вас.
- Комиссию, сборы и своп по каждой полной сделке, прямо из deals.
- А если в тиковом архиве ничего нет для какого-то исполнения, он так и скажет. Исполнение остаётся неизмеренным, а не придуманным, и отчёт указывает, какую долю это составило.
Четыре вида издержек, не смешивая
Вот ошибка, которую легко совершить: сложить спред, проскальзывание, комиссию и своп и вычесть всё из валового результата. Это двойной счёт. Спред и проскальзывание уже сидят внутри валового результата, потому что вы покупали по ask и продавали по bid; комиссия и своп списываются сверх него. Отчёт держит их раздельно. Он показывает, что реально пришло на счёт, а рядом то, что принесли бы те же сделки, будь они исполнены по средней цене без комиссии и свопа. Когда издержки выражаются в процентах, знаменателем служит именно эта вторая цифра.
Со свопом та же аккуратность. Вы видите его сальдированным в результате, а затем разложенным на то, что заплатили, и то, что получили. Издержкой считается только уплаченная часть, поэтому строки издержек всегда сходятся с итогом.
Куда ушли деньги
Каждая цифра разбивается по символу, по часу входа, по дню недели, по сессии, по направлению, по magic number и по тому, как была закрыта позиция. Проскальзывание на выходах по стоп-лоссу показано отдельно, потому что сюрпризы обычно именно там. Вы также получаете десять самых дорогих сделок и долю всех ваших издержек, которая сидит в худших десяти процентах. Часто она больше, чем кажется, и указывает на то, что можно изменить.
Как вас исполняет брокер
Три вещи, которые можно спросить с брокера, и ни одна из них не говорит о том, хороша ли ваша стратегия:
1. Стабилен ли спред? 90-й процентиль котируемого спреда относительно его медианы. Рекламный спред, который держится только когда ничего не происходит, виден здесь.
2. Насколько велико проскальзывание? Измеряется относительно типичного спреда инструмента, чтобы несколько пунктов на золоте и несколько пунктов на EURUSD не оценивались одинаково.
3. Сбалансировано ли оно? Из исполнений, которые сдвинулись, сколько сдвинулось против вас. Стакан, который всегда проскальзывает в одну сторону, страдает не от задержки.
Три показателя складываются в оценку от 0 до 100 и буквенный класс. Если у какого-то компонента не хватает выборки, он отбрасывается, а остальные пересчитываются, так что счёт, брокер которого не публикует тиковый архив, всё равно получает оценку по своим исполнениям.
Перевод пунктов в деньги без самообмана
Обычный короткий путь это текущая стоимость тика, а она тащит сегодняшний курс в сделку четырёхмесячной давности. Вместо этого каждая закрытая позиция калибрует свой собственный пересчёт по своей реализованной прибыли: она прошла известное расстояние и принесла известный результат, а это раскрывает пересчёт, который брокер применил именно в тот момент, включая кросс-курс. Стоимость тика остаётся лишь запасным вариантом для позиций, которые почти не сдвинулись.
Он говорит, что оставил за рамками
Отфильтрованный отчёт выглядит точно так же, как полный, и именно так кто-то проверяет четыре сделки на счёте из семидесяти и заключает, что с издержками всё в порядке. Этот отчёт всегда указывает диапазон проверенных сделок, искомый период, действующие фильтры и сколько закрытых сделок лежит за пределами этого периода. На панели, в HTML-отчёте и в CSV.
Что получается на выходе
- Панель на графике с пятью страницами: Overview, Symbols, Time, Quality и Method. Крепится к любому углу, подстраивается под высоту графика и прокручивается, когда содержимого больше, чем помещается.
- Автономный HTML-отчёт со встроенными диаграммами. Никаких внешних файлов: открывается на любом компьютере и аккуратно печатается. Удобно отправить брокеру или самому себе через полгода.
- CSV с одной строкой на каждую полную сделку, UTF-8 с меткой порядка байтов и разделителем на ваш выбор, для вашей собственной таблицы.
Попробуйте перед покупкой
У тестера стратегий нет истории счёта для проверки, поэтому в тестере продукт строит набор смоделированных сделок на потоке тиков и проверяет его. Ордера не отправляются. Спреды, движение цены между решением и исполнением и исполнения стоп-лоссов берутся из записанных брокером тиков по этому символу и периоду, так что цифры исполнения описывают этот инструмент у этого брокера. Придумано только расписание сделок, и каждый экран об этом говорит. Используйте режим «Каждый тик на основе реальных тиков»: режимы OHLC и по ценам открытия генерируют слишком редкие тики, чтобы засечь исполнение, и когда это происходит, отчёт сообщает, сколько исполнений он оставил неизмеренными.
У этого есть полезный побочный эффект. Направьте его на любой символ и период, и он ответит на вопрос, который вы, возможно, задавали себе перед открытием счёта: во что обошлась бы мне торговля этим инструментом у этого брокера?
Что нужно
MetaTrader 5, без DLL. Счета хеджинговые или неттинговые, любой символ, любой таймфрейм. Для измерения спреда нужен тиковый архив по торгуемым символам. Первый запуск по символу может занять минуту, пока терминал загружает тики; панель и отчёт называют символы, которых ещё нет, и проверка сама повторяет попытку в течение нескольких минут.
Основные параметры
- Период: последние N дней, произвольный диапазон дат или вся доступная история.
- Фильтры: символы (с суффиксом брокера или без), magic number и диапазоны, направление, минимальный объём.
- Измерение: окно поиска котировки в миллисекундах, половина или полный спред на исполнение, автоматическая денежная калибровка или текущая стоимость тика.
- Сессии: часы Азии, Лондона и Нью-Йорка по времени сервера, переход через полночь допускается.
- Панель: угол, отступы, размер шрифта, цвета, интервал автообновления.
- Отчёты: HTML и CSV включаются отдельно, разделитель CSV, экспорт при первой проверке, скрытие данных счёта, папка отчёта и суффикс имени.
- Демонстрация в тестере стратегий: объём, сделок в день, время удержания, предполагаемая комиссия, расстояние до стопа.
Ограничения, сказанные прямо
- Считаются только полностью закрытые сделки. Открытая позиция это половина сделки, а у половины сделки нет выхода, который можно измерить.
- На счетах с рыночным исполнением ордер не несёт запрошенной цены, поэтому проскальзывание на входе измерить нельзя. Отчёт показывает долю покрытия, а не заполняет пробел.
- На некоторых серверах рыночный ордер записывается по цене исполнения. Если все рыночные исполнения на счёте показывают ровно нулевое проскальзывание, они считаются неизмеренными, а не идеальными, и отчёт об этом сообщает.
- Спред и проскальзывание это измерения того, что содержит архив, а архив принадлежит брокеру.
- Оценка исполнения описывает исполнения, а не прибыльность. Идеальный брокер не сделает убыточную стратегию прибыльной.
Вопросы
Если что-то в вашем отчёте не сходится, спросите в комментариях к продукту или напишите мне личное сообщение на MQL5. Я читаю и то и другое, и отчёт, который не удаётся объяснить, это ровно то, о чём я хочу знать.
