Баг с IsVisualMode()!!!

 
Здравствуйте.

В новом 200 билде и в 199, не работает функция IsVisualMode(), не возвращает True
пример приведенный в хелпе, тоже не функционирует, исправте этот баг.

код для проверки:
#property indicator_chart_window

int start()
{
int counted_bars=IndicatorCounted();
//----
if(IsVisualMode()) Comment("Visual mode turned on");
//----
return(0);
}
 
Как Вы определили, что функция не работает?
 
Комент не работает. на чарт не выводится информация "Visual mode turned on"
 
Поиск "comment"
"Функция Comment"

а пример действительно не совсем удачный :)
 
Вот пример надеюсь более удачный. Стандартный индикатор MACD, если его прикрепить на чарт то он ничего не должен расчитывать, а если прикрепить к графику где идёт визкальное тестирование то расчет должен осуществляться. т.к. IsVisualMode()==true

//+------------------------------------------------------------------+
//| 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 (IsVisualMode()==true){
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, то она вернёт false. По той же причине.
 
объясните подробнев в связке с чем и как использовать данную функцию.
Попробывал написать эксперта который вызывает данный индикатор, тоже ничего не вышло.

int start()
{
//----
double indic = iCustom(NULL, 0, "MACD",12,26,9,0);
Comment (indic);
//----
return(0);
}
 
Эту функцию желательно использовать в экспертах (согласно справки). Например, для дополнительной визуализации с помощью графических объектов.
 
В индикаторах тоже можно. Просто для общности. Вызванные экспертом индикаторы наследуют всё окружение (флаги в том числе) эксперта.
Причина обращения: