Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нашел. Глюк в тестере есть и устойчиво воспроизводится. Но не в параметрах custom символов, как ожидалось, а где-то в генераторе тиков.
Надеюсь, никто не будет оспаривать утверждение: "Ни при каких условиях тестер не должен искажать исходные котировки".
По факту имеем следующее: для каких-то произвольных свечей с tick_volume = 1 тестер генерит глючный тик, в котором open, high, low равны close.
Получается свеча, "схлопнутая" в ноль. Таких свечей немного, в тестах на разных символах выходило от 200 до 400 шт из ~3,9 млн, но они гробят на корню все результаты тестирования.
В котировках "родных" символов свечей с tick_volume = 1 тоже немало, например для EURUSD - 229 тыс. из 9,6 млн баров, но при этом тестер ведет себя правильно,
все свечи в тестовом эксперте совпадают с исходными.
Больше полугода уже этой ошибке. Описывалось здесь: https://www.mql5.com/ru/forum/474452/page23#comment_55270633
Разработчикам пофик.
Нашел. Глюк в тестере есть и устойчиво воспроизводится. Но не в параметрах custom символов, как ожидалось, а где-то в генераторе тиков.
Надеюсь, никто не будет оспаривать утверждение: "Ни при каких условиях тестер не должен искажать исходные котировки".
Генератор тиков работает с теми контейнерами, которые ему прислали. И ещё никто не жаловался, что данные какие-то не такие. Брокеры тоже не жаловались
Тестер не искажает исходные котировки.
По поводу tick_volume. Прочитайте статью Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5. Там про это явно написано:
Минутный бар тиковым объёмом 1 не подвергается никакой генерации - записывается тик со значением Close.
Бар с 2 тиками тоже не генерируется - сначала записывается его тик со значением Open, затем записывается тик со значением Close.
Бар с 3 тиками генерируется по схеме, для трёхтиковых баров существует всего 4 шаблона развития бара
Если у бара больше 3 тиков, то сначала генерируются опорные точки. Количество опорных точек не может быть больше тикового объёма. Цена открытия Open не входит в подсчет количества опорных точек, так как с нее начинается движение. Максимальное число опорных точек - 11.
Статья написана 15 лет назад и доступна для поиска
По факту имеем следующее: для каких-то произвольных свечей с tick_volume = 1 тестер генерит глючный тик, в котором open, high, low равны close.
Получается свеча, "схлопнутая" в ноль. Таких свечей немного, в тестах на разных символах выходило от 200 до 400 шт из ~3,9 млн, но они гробят на корню все результаты тестирования.
Что-то похожее было, если тиков < 4.
Кажется решилось тем, что в кастомный символ сначала сохраняю тики, а потом бары. Если наоборот, то там может встроенный баро-генератор переписать записанный бар. Если вы реальные тики не сохраняете, то это не то, что вам нужно.
Еще пробовал править число тиков на 4 если их <4.
Года 2 назад с этим занимался, деталей уже не помню. Попробуйте оба варианта, возможно поможет.
Тестер не искажает исходные котировки.
Ну зачем на черное говорить, что оно белое? Тестер котировки искажает. Эксперт получает не те свечи, которые были в исходных котировках.
Минутный бар тиковым объёмом 1 не подвергается никакой генерации - записывается тик со значением Close.
Вот это и есть глюк. Если установлен режим "Только цены открытия", то эксперт должен получать цены открытия, а не "тик со значением Close".
Ну зачем на черное говорить, что оно белое? Тестер котировки искажает. Эксперт получает не те свечи, которые были в исходных котировках.
Вот это и есть глюк. Если установлен режим "Только цены открытия", то эксперт должен получать цены открытия, а не "тик со значением Close".
Если в минутной свече тиковый объём равен 1, значит, на этой свече был только один тик.
Самый первый тик такой свечи - цена открытия.
При этом какова должна быть цена закрытия? Правильно - та же, что и цена открытия (ведь тик-то всего один).
Вывод: на минутной свече тиковым объёмом, равным 1, цена Open равна цене Close.
Какая разница какую цену записать в бар?
Если в минутной свече тиковый объём равен 1, значит, на этой свече был только один тик.
Самый первый тик такой свечи - цена открытия.
При этом какова должна быть цена закрытия? Правильно - та же, что и цена открытия (ведь тик-то всего один).
Вывод: на минутной свече тиковым объёмом, равным 1, цена Open равна цене Close.
Какая разница какую цену записать в бар?
Я все это прекрасно понимаю. Разница в том, что Вы описываете, как должно быть, а я - как есть в реальной жизни. Попробуйте объяснить все это брокеру, который присылает котировки, в которых есть полноценные свечи с open, close, high и low, (и их значения не равны), а тиковый объем = 1. Брокеру пофиг, он не занимается тестированием. Он выдал котировки, а дальше делайте с ними, что хотите. Вопрос только в позиции MQ. Либо они борются с проявлениями реальной ситуации, что вполне возможно и не требует глобальных изменений в терминале, либо возлагают все это на пользователей.
Но попробуй объяснить это брокеру, который присылает котировки
Брокеру или всё же форекс-дилеру?
Думаю, что MQ, как лицо выдавшее лицензию, должны вмешиваться в ситуацию, и давать такой организации рекомендации по устранению недостатков о которых Вы говорите.
Брокеру или всё же форекс-дилеру?
Думаю, что MQ, как лицо выдавшее лицензию, должны вмешиваться в ситуацию, и давать такой организации рекомендации по устранению недостатков о которых Вы говорите.
Именно брокеру. МТ5 давно развивается, как открытая платформа, с неслабым функционалом создания custom символов от сторонних брокеров, которые к MQ никакого отношения не имеют. И если уж MQ взяли на себя такой функционал, то защититься от всяческих странностей и нелогичностей в поведении этих брокеров - должно быть в их же интересах.
Именно брокеру. МТ5 давно развивается, как открытая платформа, с неслабым функционалом создания custom символов от сторонних брокеров, которые к MQ никакого отношения не имеют. И если уж MQ взяли на себя такой функционал, то защититься от всяческих странностей и нелогичностей в поведении этих брокеров - должно быть в их же интересах.
Если я правильно понял, то речь о том, что экспортируете котировки, которые получаете от брокера, и тестируйте кастомные символы с этими котировками.
Я только не пойму, если брокер предоставляет Вам сомнительные котировки, то почему MQ должна что-то исправлять? Логично же, что должна быть предварительная обработка данных на стороне пользователя, что бы данные отвечали требованиям MQ.
Если это брокер, то объём должен свидетельствовать о совершенной сделке, и если сделка одна, то я не понимаю, каким образом может рисоваться свеча с более чем одним значением.
Если я правильно понял, то речь о том, что экспортируете котировки, которые получаете от брокера, и тестируйте кастомные символы с этими котировками.
Я только не пойму, если брокер предоставляет Вам сомнительные котировки, то почему MQ должна что-то исправлять? Логично же, что должна быть предварительная обработка данных на стороне пользователя, что бы данные отвечали требованиям MQ.
Если это брокер, то объём должен свидетельствовать о совершенной сделке, и если сделка одна, то я не понимаю, каким образом может рисоваться свеча с более чем одним значением.
Причины описанных несоответствий в котировках могут быть разные, их разбор - не цель этой темы. Для примера приведу одну: у криптовалютных брокеров tick_volume это decimal (>16 разрядов после запятой), у MQ - long (целочисленное). При приведении типов могут быть разные эффекты. Да и сама трактовка, что такое "тиковый объем" может отличаться. И это не говорит о "сомнительности" котировок. Факт в том, что тестер MT5 искажает исходные котировки, хотя может этого не делать, просто генерить тик с полной свечей, а не только close. Ну а в текущей ситуации - "спасение утопающих ...", так что да, приходится редактировать котировки самому.