Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
OHLC Reality Check - at what stop distance does your backtest start lying? - скрипт для MetaTrader 5
- Просмотров:
- 25
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Каждый бэктест на 1-минутных данных OHLC исходит из одного неявного допущения: что внутри бара цена прошла путь «Открытие — Минимальная — Максимальная — Закрытие» для бычьего бара и «Открытие — Максимальная — Минимальная — Закрытие» для медвежьего. Допущение необходимо, поскольку данные OHLC не фиксируют траекторию движения. А реальные тики — фиксируют.
Это допущение имеет значение только в том случае, когда бар, закрывающий сделку, затрагивает и стоп, и цель. Тогда именно ордер определяет, была ли сделка прибыльной или убыточной, а тестер вынужден делать предположение. Данный скрипт измеряет, как часто это предположение оказывается неверным.
Как это работает. На каждом баре M1 он открывает виртуальную сделку с ограничителями — один уровень выше открытия бара, один ниже, оба на одинаковом расстоянии — и продвигается вперед, пока цена не достигнет одного из них. Если закрывающийся бар коснулся только одного уровня, решать нечего. Если он касался обоих, скрипт сравнивает предположение тестера с тем, как на самом деле вели себя тики в эту минуту.
Результат полностью зависит от ширины диапазона, поэтому скрипт просматривает несколько значений расстояния и выводит кривую. На паре XAUUSD за 30 дней и 27 844 виртуальных сделок:
- стоп в 20 пунктов — 62,6 % сделок оказались спорными, 23,84 % завершились неверно
- стоп в 50 пунктов — 30,1 % сделок оказались спорными, 8,25 % завершились неверно
- стоп в 100 пунктов — 8,9 % сделок оказались спорными, 1,66 % — неверными
- стоп в 200 пунктов — 1,5 % сделок с оспариваемым исходом, 0,18 % неудачных
- стоп в 500 пунктов — 0,1 % сделок оказались спорными, 0,00 % — неверными
- Стоп в 1000 пунктов — ни одна сделка не была оспариваемая, ни одна не была неверной
«Оспариваемый» означает, что ценовой бар, закрывший сделку, коснулся обоих уровней, поэтому исход сделки определил ордер. «Неверный» — это доля всех завершённых сделок, в которых предполагаемый тестером ордер был противоположен тому, как двигались тики: выигрыш был записан как убыток или наоборот.
Таким образом, честный вывод не заключается в том, что «OHLC всегда лжет» или «OHLC в порядке». У этой «лжи» есть порог, этот порог зависит от конкретного символа, и его можно измерить за одиннадцать секунд, вместо того чтобы спорить об этом.
Входные данные. InpSymbol (пустое значение = символ графика), InpDays, InpBrackets (расстояния стопов для прочесывания, в пунктах), InpHorizonBars (сколько времени сделка может оставаться открытой, прежде чем она будет считаться неразрешённой), InpStepBars (открывать сделку каждые N баров; увеличьте это значение на медленных компьютерах) и InpWriteCSV, который выводит список всех неправильно разрешенных сделок с указанием времени входа, бара закрытия, прогноза модели и фактических тиков, чтобы вы могли проанализировать отдельные случаи.
Программа работает только с историческими данными. Она никогда не размещает ордеров и не вмешивается в открытые позиции.
Требуется реальная тиковая история по данному символу — сначала загрузите её в окне «Символы», иначе спорные сделки не могут быть разрешены.

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/77063
CGoldSymbol - find the broker's gold and size the position correctly on it
Определяет символ «gold», как бы его ни называл брокер, считывает спецификацию контракта из терминала, а не принимает её на веру, и преобразует риск в валюте счёта в размер лота, соответствующий требованиям данного брокера.
Trade Excursion Report: MFE and MAE of every closed trade, to CSV
Экспортирует по одной строке CSV на каждую закрытую сделку с данными, которых нет в выписке: максимальная нереализованная прибыль по сделке (MFE), максимальный нереализованный убыток, который удалось пережить (MAE), какая доля от MFE была фактически сохранена, сколько баров охватила сделка и как долго она удерживалась. Те же показатели, что и у индикатора Trade Excursion, только записываются в файл, а не отображаются на графике, поскольку эти данные позволяют задать вопросы, на которые график ответить не может: зависит ли коэффициент удержания от времени входа в сделку? Являются ли сделки, которые я закрываю раньше срока, теми, которые я удерживаю дольше всего? Достигают ли убыточные сделки по понедельникам другого значения MAE, чем по пятницам? Ответы на эти вопросы можно получить с помощью одной сводной таблицы, как только файл CSV будет готов. Результаты выводятся с разделителем «точка с запятой» и строкой заголовка в формате MQL5\Files; файл открывается в любой программе для работы с таблицами. Ограничение измерения: отклонения рассчитываются на основе максимумов и минимумов баров на выбранном таймфрейме; траектория движения внутри бара неизвестна. Столбец «бары» отражает разрешение, полученное для каждой сделки, а в сводке сделки, заключенные в пределах одного бара, учитываются отдельно, а не усредняются.
YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя
Скрипт рисует уровни Рудолфа Акселя
YURAZ_MCCH
Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.