Тестер выдает неправильные величины EMA ! - страница 2

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Меня - пока, вроде, не заметила повода для смущения.
Если кратко, то пыталась просто вам сказать, что бы вы убедились, что перед началом тестирования данные для расчётов готовы и подкачаны и есть в наличии все необходимые ценовыеданные другого тайм-фрейма, и эти данные являются корректными. Как-то так.
Я проверил. Всё подкачано. А насчет корректности данных то какая разница то ? Индикатор который я вижу на графике строится по тем же самым барам которые считывает тестер верно ?
Если у вас найдется время сделайте плиз эксперимент - получение в тестере EMA на том же периоде и с теми же параметрами как у меня. И сравните с показаниями индикатора на графике.
Очень интересно что у вас получится.
Заранее спасибо ).
З.Ы. Само собой и в MT4 и в MT5 надо для сравнения результатов.
З.З.Ы Скорее всего придется встраивать расчет EMA в советник. Я уже делал подобное с полгода назад но для Bands. Проблемы были аналогичные но только в отношении MT5 в режиме мультивалютки. Я нашел баг, написал об этом в сервисдеск. Меня попросили прислать доказательства. Прислал. Ну и после этого мне больше ничего не писали. Стали игнорировать.
В результате я встроил индюк в сову и всё сразу встало на свои места.
Я проверил. Всё подкачано. А насчет корректности данных то какая разница то ? Индикатор который я вижу на графике строится по тем же самым барам которые считывает тестер верно ?
Если у вас найдется время сделайте плиз эксперимент - получение втестере EMA на том же периоде и с теми же параметрами как у меня. Исравните с показаниями индикатора на графике.
Очень интересно что у вас получится.
Заранее спасибо ).
З.Ы. Само собой и в MT4 и в MT5 надо для сравнения результатов.
З.З.Ы Скорее всего придется встраивать расчет EMA в советник. Я уже делал подобное с полгода назад но для Bands. Проблемы были аналогичные но только в отношении MT5 в режиме мультивалютки. Я нашел баг, написал об этом в сервисдеск. Меня попросили прислать доказательства. Прислал. Ну и после этого мне больше ничего не писали. Стали игнорировать.
В результате я встроил индюк в сову и всё сразу встало на свои места.
Если индикатор вызывается изнутри тестируемого эксперта, то при корректно сформированных данных для тестера проблем не должно наблюдаться.
Посмотрите всё-таки, пожалуйста, статьи по тестеру: https://www.mql5.com/ru/articles/mt4/strategy_tester
Вот ещё там хорошая, с моей точки зрения: Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри
Если после прочтения материалов по теме всё-таки останутся вопросы и вы будете точно уверены, что обнаружили проблему, то напишите в Сервисдеск, описав в заявке подробно свои действия и приложив свой код и логи.
А по поводу чисел double - просто для себя примите, что у них особенный порядок хранения в компьютере.
Поэтому при выводе на печать значения double, пусть и нормализованного ранее при числовых расчётах с помощью NormalizeDouble, всё-таки лучше добавлять, как и рекомендуют в справке по NormalizeDouble, и функцию, нормализующую вывод double в текст: DoubleToString.
P./S.: Помню, что где-то здесь на сайте была ещё очень хорошая инфа, с конкретными примерами, по особенностям double и нормализации (кроме статьи, что приводила про особенности чисел double). Но, навскидку, не увидела эту инфу по поиску.
Всем привет !
Какие то глюки странные. Вывожу обычный EMA на часовой график GBPUSD. Получаю 1,62409 на момент 2011.05.04 07:35.
Тоже самое пытаюсь получить в тестере через функцию iMA(Symbol(),PERIOD_H1,1500,0,MODE_EMA,0,1); Результат 1.633405877461445.
Как я это заметил ? Очень просто. В MT5 значения в тестере и на графике индикатора совпадают а в MT4 как оказалось нет.
Помогите пожалуйста разобраться.
Значение цены внутри бара в тестере МТ4 моделируется.
ЗЫ зачем квантовать сигнал, а после искать что-то внутри интервала квантования, если можно просто уменьшить этот интервал?
Значение цены внутри бара в тестере МТ4 моделируется.
ЗЫ зачем квантовать сигнал, а после искать что-то внутри интервала квантования, если можно просто уменьшить этот интервал?
Если индикатор вызывается изнутри тестируемого эксперта, то при корректно сформированных данных для тестера проблем не должно наблюдаться.
Посмотрите всё-таки, пожалуйста, статьи по тестеру: https://www.mql5.com/ru/articles/mt4/strategy_tester
Вот ещё там хорошая, с моей точки зрения: Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри
Устало. Читал я это всё. )
Если кому не лениво проведите плиз эксперимент про который я писал выше.
В МТ4 при старте доступно только 1000 баров для анализа. МТ5 по другому работает
DiPach:
Если после прочтения материалов по теме всё-таки останутся вопросы и вы будете точно уверены, что обнаружили проблему, то напишите в Сервисдеск, описав в заявке подробно свои действия и приложив свой код и логи.
Вот так попробовал.
Выдаёт на GBPUSD не зависимо от того на M5 или на H1 я запускаю тестер
2011.05.04 07:00 MyStochasticExp_M5 GBPUSD,M5: MA1=1.635899412506584
2011.05.04 07:00 MyStochasticExp_M5 GBPUSD,H1: MA1=1.635899412506584
А на графике EMA за период 1000 показывает 1,63238.
Или это баг или у меня кукуха едет уже :-)
Повторю еще раз. В MT5 таких расхождений не наблюдается !
З.Ы. Выбрал 1000 потому что iCustom не работает с бОльшими значениями.
Вот так попробовал.
Выдаёт на GBPUSD не зависимо от того на M5 или на H1 я запускаю тестер
2011.05.04 07:00 MyStochasticExp_M5 GBPUSD,M5: MA1=1.635899412506584
2011.05.04 07:00 MyStochasticExp_M5 GBPUSD,H1: MA1=1.635899412506584
А на графике EMA за период 1000 показывает 1,63238.
Или это баг или у меня кукуха едет уже :-)
Повторю еще раз. В MT5 таких расхождений не наблюдается !
З.Ы. Выбрал 1000 потому что iCustom не работает с бОльшими значениями.
А уже со свежей головой и вооружившись самонапоминанием, что "... когда ничего не помогает, внимательно читайте инструкцию...",
и взглядом как бы "со стороны", вновь вернуться к саморассмотрению своей проблемы. Мозаика должна сложиться.
У вас в МА идёт расчёт среднего значения цен закрытия баров за n-е количество баров.
Если вручную сложить какие-либо цифры с десятичными знаками и разделить затем их на количество, то может получится число с n-м количеством десятичных знаков.
К примеру: (1.2052 + 1.2057 + 1.2073)/3 = 1.2060667... .
Соответственно, для вывода значения для расчётов с тем же количеством десятичных знаков, что и на чарте, требуется нормализация через функцию NormalizeDouble, округляющую числа с плавающей точкой до указанной точности.
Плюс, даже если при расчётах получено среднее число с тем же количеством знаков, что и на чарте, нормализация через функцию NormalizeDouble не помешает, учитывая особенности чисел double и поскольку были расчёты значений double.
При выводе на печать (при этом идёт преобразование числового значения в текстовое), так же не мешает добавить уже другую "нормализацию", с помощью функции DoubleToString.
Думаю, вы в курсе, что в МА среднее значение за 1000 баров по ценам закрытия за период H1- это среднее значение цен закрытия за 1000 предшествующих баров с периода H1.
Справочно, на всякий случай, если на пятиминутном чарте нет пропусков баров, то 1 000 часовых баров - это 12 000 пятиминутных (или 60 000 минутных, если нет их пропусков). Как-то так.
Отличия за один и тот же период с одними и теми же расчётными параметрами может быть, если по факту различается наличие расчётного количества баров
и/или различаются отметки на чарте и отметки, сформированные для тестирования. Как-то так.
Различие в данных, когда требуется наличие бОльшего количества баров для расчётов до того, как наберётся необходимое количество баров для расчётов и если в коде не стоит ограничение дождаться необходимого количества баров для расчётов, вполне понятны.
Про моделирование и его качество посмотрите, пожалуйста, в Руководстве пользователя в Справке к торговому терминалу (вызывается клавишей F1 в терминале или через верхнее меню терминала).
Там же, в Справке к торговому терминалу, есть и хорошие статьи по тестеру, в т.ч., с инфой про моделирование.
Их не много. Они не большие по объёму. Но они информативны. Советы почитать статьи - это не вежливый посыл, а хорошие советы.
Что не могу понять, так это зачем вам тестировать код, про который вы утверждаете в теме, что у вас там применяются данные старшего тайм-фрейма, через выбор моделирования "По ценам открытия".
Так-то, выбор варианта моделирования "Все тики..." оптимальнее по смыслу для точности расчётов.
P./S.: Вы просто при моделировании "Все тики..." посмотрите сначала отображение по iMA(...) с меньшим периодом усреднения, чем писали выше. Постепенно перейдя к бОльшему (к примеру, 3 --> 30 --> 300 -->). Обратите внимание на качество моделирования, в том числе, если выявите расхождения. При необходимости, можно сравнить файлы с данными для тестирования. Формируемые файлы имеют отдельные префиксы к наименованиям. Где файлы можно увидеть в компе, смотрите сами, пожалуйста, в статьях (в терминале - верхнее меню терминала: Файл -->Открыть автономно-->Открыть).
Как-то так.
P./S.: У вас в коде цены закрытия, а я, на автомате, про цены открытия написала сначала. Сейчас поправила.
Упрощения же по расчётам среднего (не по ЕМА) - это не ошибка у меня, это текстовое упрощение.