Срочно исправте в новом билде!!! - страница 2

 
Вобщем объясняю по порядку. Взял для примера Стандартный MACD и добавил в него ограничение для тестера.
//+------------------------------------------------------------------+
//|                                                  Custom MACD.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2004, MetaQuotes Software Corp."
#property  link      "https://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Silver
#property  indicator_color2  Red
#property  indicator_width1  2
//---- indicator parameters
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- indicator buffers
double     MacdBuffer[];
double     SignalBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignalSMA);
   IndicatorDigits(Digits+1);
//---- indicator buffers mapping
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   if (IsTesting())
        {
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd buffer
   for(i=0; i<limit; i++)
      SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- done
   return(0);
       }
  }
//+------------------------------------------------------------------+



Крепим на чарт данный индикатор и видем следующую картину.


Запускаем любой эксперт в визуальном режиме и крепим на чарт этот же индикатор. Работаем мы в режиме тестирования. Ограничение позволяет расчитываться если мы работаем в режиме тестировани. Но видем мы ту же самую картину, так вот объясните это недоработка в терминале, баг, глюк или я что-то не понял?



По логике должен же быть ограничитель какой-то. Логичней всего привязать окно к тестеру и ограничивать через IsTesting(), или ноовую функцию вводить нужно. Но подобное ограничение необходимо.

 
HIDDEN, перечитайте внимательно мой пост
===
Индикатор, накладываемый на график, и индикатор, используемый в эксперте, - это две разные сущности. Почитайте в справке MetaEditor про выполнение программ: "MQL4: Выполнение программ"

Для отрисовки индикатора, он должен быть прикреплён к графику. Независимо от того, используется он при тестировании или нет. Можно запретить отрисовку индикатора (через IsTesting, как это предложил Jhonny), но этот запрет коснётся и визуализации тоже.
===
Я именно об этом Вас и предупредил.

Повторяю ещё раз: я даже не знаю, как реализовать Ваше предложение без серьёзных переделок клиентского терминала.
 

Повторяю ещё раз: я даже не знаю, как реализовать Ваше предложение без серьёзных переделок клиентского терминала.

Через WindowFind( string name) тоже не получется ничего сделать, не ищет окно. Может расширить эту функцию или еще что-то. Решение где-то рядом, но куда не ткнутьсь, там не так тут не эток.