Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не можешь разобраться в коде? Возможно, на эту тему уже написана статья!
Nick Revych
298
Nick Revych 2012.02.27 09:26 

Уважаемые разработчики, есть индикатор, который выдает сигнал на вход и сигнал на выход.
Запускаю торгового робота с этим индикатором. Три запуска тестера - три разных результата.
Я с тестером работаю давно - еще с 3-ей версии. Как бы все нюансы учел : индюк не перерисовывается, сигнал считываю не на 0-ом баре.

Тесты провожу по ценам открытия и перепроверяю в режиме каждого тика.  Какая информация вам нужна, чтобы разобраться, почему результаты тестов как бы переключаются при тех же настройках индикатора и советника ?

Alexey Da
Модератор
6613
Alexey Da 2012.02.27 09:36  

Как можно подробнее и лучше в сервисдеск.

  1. Парочку отчетов о результатах.
  2. Логи.
  3. Сервер.
  4. Какие агенты используются
  5. Эксперт с индикатором (исходники предпочтительнее).
  6. Настройки в тестере стратегий.

 

Nikolay Khrushchev
19165
Nikolay Khrushchev 2012.02.27 10:03  
1CMaster:

Уважаемые разработчики, есть индикатор, который выдает сигнал на вход и сигнал на выход.
Запускаю торгового робота с этим индикатором. Три запуска тестера - три разных результата.
Я с тестером работаю давно - еще с 3-ей версии. Как бы все нюансы учел : индюк не перерисовывается, сигнал считываю не на 0-ом баре.

Тесты провожу по ценам открытия и перепроверяю в режиме каждого тика.  Какая информация вам нужна, чтобы разобраться, почему результаты тестов как бы переключаются при тех же настройках индикатора и советника ?

MT4 MT5? 
Vladimir Gomonov
8274
Vladimir Gomonov 2012.02.27 15:05  
1CMaster:

Уважаемые разработчики, есть индикатор, который выдает сигнал на вход и сигнал на выход.
Запускаю торгового робота с этим индикатором. Три запуска тестера - три разных результата.
Я с тестером работаю давно - еще с 3-ей версии. Как бы все нюансы учел : индюк не перерисовывается, сигнал считываю не на 0-ом баре.

Тесты провожу по ценам открытия и перепроверяю в режиме каждого тика.  Какая информация вам нужна, чтобы разобраться, почему результаты тестов как бы переключаются при тех же настройках индикатора и советника ?

Иногда подобные чудеса случаются, если какая-то переменная (в частности массив) оказывается неинициализированной. // По недосмотру.

В таких случаях в переменной оказывается случайный мусор, и как следствие - типа-чудеса-в-тестере.  :)

Проверьте, возможно плюха в коде.  У меня (тьху-тьху) в последнее время тестер не чудит.


Nick Revych
298
Nick Revych 2012.02.27 16:13  
alexvd:

Как можно подробнее и лучше в сервисдеск.

  1. Парочку отчетов о результатах.
  2. Логи.
  3. Сервер.
  4. Какие агенты используются
  5. Эксперт с индикатором (исходники предпочтительнее).
  6. Настройки в тестере стратегий.

 

Уважаемые разработчики.

Высылаю все исходники. 

Краткая инструкция :

1. Открыть EURUSD H1, кинуть на него индикаторы SS(signal system) и FB(fibo bars). Они покажут два сигнала - кружечком сигнал продажи. Квадратиком - сигнал закрытия продажи.Все параметры прописаны жестко и ничего настраивать не нужно.

2. Запустить тестер за период 01.01.2012 - 25.02.2012 EURUSD H1. По сигналу продажи тестер должен продать, а по сигналу закрытия закрыть сделку.

3. Тестер при нескольких запусках выдает разные результаты (+96.80; - 156.20; -416.20; -335.20). Правильным является -335.20 - и визуально тогда совпадут сигналы тестера с сигналами индикатора SS.

 

Индикатор специально написан, чтобы проверить правильность работы тестера. Несколько раз перепроверял его, сдвигая сигналы.

Что происходит - не понятно. Надеюсь вы проясните ситуацию. Оптимизацию не могу запустить по причине  разных результатов. 

ВАЖНО - запускаю портативную версию метатрейдера (/portable) на сервере с ОС Windows Server 2008 R2 SP1, 2*Xeon 5640 (12 ядер, 24 потока).

Файлы:
MQL5.zip 248 kb
Nick Revych
298
Nick Revych 2012.02.28 17:04  
Где этот сервиск-деск - я туда отправлю запрос ?
Nikolay Khrushchev
19165
Nikolay Khrushchev 2012.02.28 17:09  
1CMaster:
Где этот сервиск-деск - я туда отправлю запрос ?
в профиле, профиль справа сверху.
Andrey Vasiliev
7833
Andrey Vasiliev 2012.02.28 18:20  
1CMaster:

Особенность MT5: Если индикаторный буфер специально не обнулять, то терминал при работе через iCustom() может выдавать в качестве значения буфера любой мусор из стека.

Отсюда и появляются непонятные сигналы. 

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
Nick Revych
298
Nick Revych 2012.02.28 18:26  
MoneyJinn:

Особенность MT5: Если индикаторный буфер специально не обнулять, то терминал при работе через iCustom() может выдавать в качестве значения буфера любой мусор из стека.

Отсюда и появляются непонятные сигналы. 

 

Есть ссылка на правильное использование iCustom() с учетом этих нюансов ??? А то устал я его проверять и искать в чем же дело.
Vladimir Gomonov
8274
Vladimir Gomonov 2012.02.28 19:08  
1CMaster:
Есть ссылка на правильное использование iCustom() с учетом этих нюансов ??? А то устал я его проверять и искать в чем же дело.

Причём здесь iCustom()? Подключаемый индикатор должен инициализировать буфер (например нулями, если осцилятор) перед использованием.

Я Вам ещё вчера на происхождение вашей плюхи весьма толсто намекнул. 

MetaDriver:

Иногда подобные чудеса случаются, если какая-то переменная (в частности массив) оказывается неинициализированной. // По недосмотру.

// Или Вы свято верите что виноват тестер?  Тогда почему только у Вас?
Vladimir Gomonov
8274
Vladimir Gomonov 2012.02.28 19:10  
https://www.mql5.com/ru/docs/array/ArrayInitialize

ArrayInitialize

Инициализирует числовой массив указанным значением.

void  ArrayInitialize(
   double  array[],     // инициализируемый массив
   double  value        // значение, которое будет установлено
   );

Параметры

array[]

[out]  Числовой массив, который нужно инициализировать.

value

[in]  Новое значение, которое нужно установить всем элементам массива.

Документация по MQL5: Операции с массивами / ArrayInitialize
Документация по MQL5: Операции с массивами / ArrayInitialize
  • www.mql5.com
Операции с массивами / ArrayInitialize - Документация по MQL5
/ /1234567
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий