Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна - страница 11

 
Carl Schreiber:

Как индикатор может самоуничтожиться?

Только так:

bool g_bIsActivate = false;

int OnInit()
{
   if (<incorrect>)
      return INIT_FAILED;

   g_bIsActivated = true;
   return INIT_SUCCEEDED;

}

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[])
{
   if (!g_bActivate)
      return 0;
      
   if (<something wrong>)                                                              
   {
      g_bIsActivated = false;
      return 0;
   }

   return rates_total;
}

Правда, если удастся пройти инициализацию и какое-то время не достигать условия <something wrong>, то индикатор снова оживет после рекомпиляции. Тут уж совсем никак.

 
мне кажется, что то-то случилось с цветом color с типом записи  

C'128,128,128'

Никто не замечал у себя такое ? 

пока догадки. ... 


 Print(" COLOR="+StringToColor(C'141,110,99'));

возвращает 

COLOR=clrBlack

а почему черный? если это не черный? 

в мт4 все ок, этот же код в билде до января 2021 работал замечательно 


увидел  в справке : 

color str_color=StringToColor("0,127,0");



а когда это поменяли? %-) странно.. ранее ведь все было не так.... 

 
Vladislav Andruschenko:

Никто не замечал у себя такое ? 

ColorToString.

 
fxsaber:

ColorToString.

это все ясно понятно. 

уже переделал.  Спасибо

я просто сообщил, что ранее было по другому и я не видел сообщения о том, что это изменилось в этом. 

 
Vladislav Andruschenko:

это все ясно понятно. 

уже переделал.  Спасибо

я просто сообщил, что ранее было по другому и я не видел сообщения о том, что это изменилось в этом. 

Кстати в стандартной библиотеке <Graphics\Graphic.mqh>, такая же беда с цветами.
Цвета не соответствуют запрошенным.

 
Roman:

Кстати в стандартной библиотеке <Graphics\Graphic.mqh>, такая же беда с цветами.
Цвета не соответствуют запрошенным.

что-то или поломали, либо сделали специально, но не сообщили - все цветовые схемы, где используется StringToColor(C',,') выдают clrBlack . 

Оставлю это здесь. вдруг кто будет искать.. 

 
Vladislav Andruschenko:

я просто сообщил, что ранее было по другому и я не видел сообщения о том, что это изменилось в этом.

Изменений не было. Все работает, как и раньше.

 
fxsaber:

Изменений не было. Все работает, как и раньше.

все цветовые схемы, где используется StringToColor(C',,') выдают clrBlack .

Поэтому больше не работают нигде . 
Изменения явно в каком то билде с января 2021. 
 
Vladislav Andruschenko:
все цветовые схемы, где используется StringToColor(C',,') выдают clrBlack .

Это абсолютно правильно и всегда так работало. Идет преобразование color->string->color.

Зачем так делаете - не знаю.

 
fxsaber:

Это абсолютно правильно и всегда так работало. Идет преобразование color->string->color.

Зачем так делаете - не знаю.

не всегда так работало :-) 

Если люди выше сообщают, что даже в стандартной библиотеке появились ошибки. Значит ранее работало правильно, а теперь неправильно (или правильно, тогда нужно и в мт4 поправить).


Я записывал все цвета как C'xxx,xxx,xxx'

что подтверждает тип color 

//--- литералы 
C'128,128,128'    // серый 

мне удобнее было все делать в массив string. 

далее я использовал StringToColor - который работал исправно с  C'xxx,xxx,xxx' и сейчас работает в МТ4. 

Но в новом билде МТ5 - эта функция не работает с  C'xxx,xxx,xxx'


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