Bid индикатора в тестере, mql4

 

В MT4:

1) Запускаешь тестер с советником.

2) На график (visual) тестера самостоятельно добавляешь индикатор. Просто для информации. Этот индикатор не участвует в расчетах советника.

И! Если индикатор как-то использует цену Ask или Bid, то они берутся текущие! а не из тестера!


Вот код индикатора Test:

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   Print("Bid = ", Bid);
   return(rates_total);
  }

Код советника Zero:

void OnTick() 
  { 
  Print("Bid = ", Bid);
  }

Лог из тестера:

2       22:48:32        2016.06.06 00:00  Zero test started
0       22:48:32        2016.06.06 00:02  Zero EURUSD.m,M5: Bid = 1.13535
0       22:48:33        2016.06.06 00:02  Custom indicator Test EURUSD.m,M5: loaded successfully
0       22:48:35        2016.06.06 00:02  Test EURUSD.m,M5: Bid = 1.12431


Это так и задумано или баг?

 
Oksana Berenko:

Это так и задумано или баг?

Это, к сожалению, старая фича тестера МТ4. Индикатор, прикрепленный к окну визуализатора, знать не знает о том, что существует тестерное рыночное окружение. Он живет в текущем рыночном окружении с той лишь поправкой, что использует данные ценового графика визуализатора.

Тут только два варианта:

1. Тестировать индикатор в специальном режиме, выбрав в выпадающем меню слева вверху окна "Индикатор".

2. Адаптировать индикатор к работе на графике визуализатора. Для этого убрать все обращения типа  Bid, Ask, TimeCurrent() и т. д. Вместо них использовать iClose(), iTime().

 
Ihor Herasko:

Это, к сожалению, старая фича тестера МТ4. Индикатор, прикрепленный к окну визуализатора, знать не знает о том, что существует тестерное рыночное окружение. Он живет в текущем рыночном окружении с той лишь поправкой, что использует данные ценового графика визуализатора.

Тут только два варианта:

1. Тестировать индикатор в специальном режиме, выбрав в выпадающем меню слева вверху окна "Индикатор".

2. Адаптировать индикатор к работе на графике визуализатора. Для этого убрать все обращения типа  Bid, Ask, TimeCurrent() и т. д. Вместо них использовать iClose(), iTime().

В своем индикаторе так и сделала - переделала Bid в Close[0]. Просто бывает, что от индикатора есть только ex4. Прописываешь его в советнике для заказчика (сама не использую такие индикаторы). В тестере же индикатор высветится только, когда закончится тестирование. Чтобы было наглядно тестирование советника, кидаешь индикатор в тестере на график - и видишь неожиданный результат.
 
Oksana Berenko:
В своем индикаторе так и сделала - переделала Bid в Close[0]. Просто бывает, что от индикатора есть только ex4. Прописываешь его в советнике для заказчика (сама не использую такие индикаторы). В тестере же индикатор высветится только, когда закончится тестирование. Чтобы было наглядно тестирование советника, кидаешь индикатор в тестере на график - и видишь неожиданный результат.
Когда индикатор вызывается через iCustom, то он оказывается в тестерном окружении. То есть в этом случае полный порядок. А вот проверить визуально, чтобы и советник был запущен, и индикатор отображал реальную картину происходящего в тестере, к сожалению, без танцев с бубном не получится.
Причина обращения: