Влияние ТФ на результаты тестирования.

 

В моем советнике используются сигналы от индикаторов (один и тот же индикатор но на разных ТФ), ТФ-ы индикаторов явно прописаны в инпутах советника.

Тестирую в режиме "OHLC на M1" на разных ТФ и результаты разные, как такое может быть? - ведь ТФ-ы прописаны в индикаторах и не должно быть зависимости от ТФ на котором запущен советник, тем более ТФ чартов формируются из минуток.

Вот примеры результатов:

ТФ тестирования   Прибыльность

M1                              0.99

M5                              1.03

M15                            0.96

H1                              1.26

H4                              0.82

Чему верить и как получить достоверные результаты? 

ЗЫ. В режиме тестирования "Все тики" результаты тоже разные на разных ТФ. 

 
Andrey Dik:

...

Чему верить и как получить достоверные результаты? 

А количество сделок тоже разное? Можно ещё в режиме визуализации пошагово посмотреть, в чём там отличия получаются.
 
Anatoli Kazharski:
А количество сделок тоже разное? Можно ещё в режиме визуализации пошагово посмотреть, в чём там отличия получаются.

Кол-во сделок разное.

Можно конечно и визуализатор смотреть и  в отладчике.... Но какая может быть причина в разнице результатах? Я довольно опытный юзер и до истины докопаюсь, но как быть новичкам? - ведь разницы не должно быть при таком раскладе.... 

 

Вот этой функцией проверяю начало бара для соответствующего ТФ 

//——————————————————————————————————————————————————————————————————————————————
class C_IsNewBar
{
public:
  void Init (ENUM_TIMEFRAMES period) 
  { 
    symbPeriod = period;
  }
  bool IsNewBar () 
  {
    currentTime = SeriesInfoInteger (Symbol (), symbPeriod, SERIES_LASTBAR_DATE); 
    
    // если это первый вызов функции
    if(lastTtime == 0) 
    {
      // установим время и выйдем 
      lastTtime = currentTime; 
      return (false);
    }
    
    // если время отличается
    if(lastTtime != currentTime) 
    {
      // запомним время и вернем true
      lastTtime = currentTime; 
      return (true);
    }
    
    return (false);
  }
  
  C_IsNewBar (void) 
  { 
    lastTtime = 0;
  }
  ~C_IsNewBar (void) 
  { 
  }
  
private:
  long lastTtime;   // время открытия предыдущего бара
  long currentTime; // текущее время
  ENUM_TIMEFRAMES symbPeriod;  // период TF символа
}; 
//——————————————————————————————————————————————————————————————————————————————
 
Andrey Dik:

Кол-во сделок разное.

.... Но какая может быть причина в разнице результатах? ...

Возможно в том, что серия сделок на ТФ старше минутного начинается раньше. Чем старше ТФ, тем большее количество сделок получается?
 
Anatoli Kazharski:
Возможно в том, что серия сделок на ТФ старше минутного начинается раньше. Чем старше ТФ, тем большее количество сделок получается?
не, наоборот, чем старше ТФ тем меньше сделок
 

Короче, нет никакого влияния ТФ чарта на расчет индикаторов (если индикатор считается по другому ТФ). Переработался я.)

Специфическая "проблема" была в особенностях формирования сигналов в советнике.

По крайней мере эта ветка даст ответ тому, кто задастся вопросом топика. 

 
Alexander Laur:
Тиковый индикатор не будет зависеть от ТФ. Свечной или баровый будет, т.к. на разных ТФ будут разные OHLC.
Наоборот, тиковый индикатор ОЧЕНЬ сильно зависит от тиков на входе. У разных торговых организаций тики подаются разной формы. Можете сравнить, например, по одному и тому же символу, но разных торговых организаций.
Файлы:
 

Хочу встроить в советник возможность оптимизировать как параметр торговый символ.

Думаю, как это лучше сделать....

Типа так сделать энум:

enum E_Symbols
{
  EURUSD = 1,  
  GBPUSD = 2,
  EURCHF = 3,
  ...........
  SGDJPY = 27
};

input  E_Symbols  Symbols_P = EURUSD;

 А в ините проверять наличие выбранного символа и добавлять если есть в "Обзор рынка".

Но есть минус в таком подходе. Если прописать в перечислении все возможные символы, то некоторые окажутся зря задействованными при оптимизации...

Как бы лучше сделать? 

 
Andrey Dik:

В моем советнике используются сигналы от индикаторов (один и тот же индикатор но на разных ТФ), ТФ-ы индикаторов явно прописаны в инпутах советника.

Тестирую в режиме "OHLC на M1" на разных ТФ и результаты разные, как такое может быть? - ведь ТФ-ы прописаны в индикаторах и не должно быть зависимости от ТФ на котором запущен советник, тем более ТФ чартов формируются из минуток.

Вот примеры результатов:

ТФ тестирования   Прибыльность

M1                              0.99

M5                              1.03

M15                            0.96

H1                              1.26

H4                              0.82

Чему верить и как получить достоверные результаты? 

ЗЫ. В режиме тестирования "Все тики" результаты тоже разные на разных ТФ. 

На OHLC вообще нельзя тестировать, тестер некорректно работает, одни граали получаются. 

 
Sergey Chalyshev:

На OHLC вообще нельзя тестировать, тестер некорректно работает, одни граали получаются. 

Сергей, с ТФ уже разобрались же, нормально всё работает. Я вообще сейчас выношу в инпут все ТФ, индикаторов, и прочего, что бы иметь возможность оптимизировать и ТФ ко всему прочему. Результаты на всех ТФ идентичны.

В последних билдах МТ5, если ты не в курсе, исправлена работа в тестере отложек и стопов, сейчас тестер отрабатывает заявленные цены. А начало открытия бара, да и вообще - контроль времени в барах и свечах всё равно ведь никто не отменял.

Сейчас другой вопрос: каким образом лучше, удобнее организовать оптимизацию символа как параметр в советнике? 

 
Andrey Dik:

Сергей, с ТФ уже разобрались же, нормально всё работает. Я вообще сейчас выношу в инпут все ТФ, индикаторов, и прочего, что бы иметь возможность оптимизировать и ТФ ко всему прочему. Результаты на всех ТФ идентичны.

В последних билдах МТ5, если ты не в курсе, исправлена работа в тестере отложек и стопов, сейчас тестер отрабатывает заявленные цены. А начало открытия бара, да и вообще - контроль времени в барах и свечах всё равно ведь никто не отменял.

Сейчас другой вопрос: каким образом лучше, удобнее организовать оптимизацию символа как параметр в советнике? 

Насчет отложек не проверял, потому что забросил это дело ждать от разработчиков чего то реального. Посмотрю на досуге.

Как лучше организавать оптимизацию символа незнаю, делаю так:

enum instrument { NONE,CURRENT,MXI,RTS,GAZR,SBRF,GMKR,VTBR,LKOH,ROSN,Si,ED,BR,GOLD };

input instrument       trader=Si;


 

Причина обращения: