Цвет штатного индикатора - страница 4

 

 1. Это НЕ Moving Average!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Положите на чарт Moving Average и Castom Moving Average !

MA 

Вот input параметры для Moving Average - их 7!!!!!!!!!!!!!!!!!!!!!!!!!! 

2. Да? Так почему нельзя изменить из своего кода?

 
Mikalas:

 1. Это НЕ Moving Average!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Положите на чарт Moving Average и Castom Moving Average !

2. Да? Так почему нельзя изменить из своего кода?

1. Ваше утверждение требует строгих доказательств

2. Потому что цвет не влияет на расчёт. Потому что при создании индикатора из эксперта создаётся только его расчётная часть без интерфейсной, которя для эксперта не имеет никакого смысла.

 
Mikalas:
...

2. Да? Так почему нельзя изменить из своего кода?

Ещё раз переспрошу:

Вы хотите знать причину почему нельзя,

или

вы хотите донести до разработчиков мысль что так должно быть можно?

 
Mikalas:


Вот input параметры для Moving Average - их 7!!!!!!!!!!!!!!!!!!!!!!!!!! 

С чего это 7? Идём по ссылке и читаем

int  iMA(
   string               symbol,            // имя символа
   ENUM_TIMEFRAMES      period,            // период
   int                  ma_period,         // период усреднения
   int                  ma_shift,          // смещение индикатора по горизонтали
   ENUM_MA_METHOD       ma_method,         // тип сглаживания
   ENUM_APPLIED_PRICE   applied_price      // тип цены или handle
   );

не считая символа-периода, входных параметров всего 4

 

Urain!

 Хочу знать почему нельзя и донести до разработчиков, что так должно быть!

 

stringo!

Я для чего выложил картинку?

Зайдите в справочник не по iMA, а по IndicatorCreate() 

и внимательно прочтите:

int  IndicatorCreate(
   string           symbol,                            // имя символа
   ENUM_TIMEFRAMES  period,                            // период
   ENUM_INDICATOR   indicator_id,                      // тип индикатора из перечисления ENUM_INDICATOR
   int              parameters_cnt=0,                  // количество параметров
   const MqlParam&  parameters_array[]=NULL,           // массив параметров
   );

где MqlParam

parameters_array[]=NULL

[in] Массив типа MqlParam, элементы которого содержат тип и значение каждого входного параметра технического индикатора. 

Кстати, в Custom Moving Average ВСЕГО 3 входных параметра!!! 

Moving Average ЭТО НЕ Custom Moving Avarage! 

Функция iMA() создана для простого добавления в чарт индикатора, а функция IndicatorCreate() для расширенного.

Н-р как "С". FileCreate() и FileCreateEx();  

Михаил 

 

Mikalas:

[in] Массив типа MqlParam, элементы которого содержат тип и значение каждого входного параметра технического индикатора.

Цвет это не входной параметр технического  индикатора.
 
Mikalas:

Urain!

 Хочу знать почему нельзя и донести до разработчиков, что так должно быть!

 

stringo!

Я для чего выложил картинку?

Зайдите в справочник не по iMA, а по IndicatorCreate() 

и внимательно прочтите:

где MqlParam

parameters_array[]=NULL

[in] Массив типа MqlParam, элементы которого содержат тип и значение каждого входного параметра технического индикатора. 

Кстати, в Custom Moving Average ВСЕГО 3 входных параметра!!! 

Moving Average ЭТО НЕ Custom Moving Avarage! 

Михаил 

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

Андрей

 

Уважаемые коллеги!

 Для Moving Average - входной!(см. картинку выше)

Нет кода для Moving Average(НУ КОГДА ВЫ ЭТО ПОЙМЁТЕ?) Есть для Custom Moving Average.

Я написал в техподдержку. Посмотрим, что ответят.

 

Михаил 

 
Mikalas:

Urain!

 Хочу знать почему нельзя и донести до разработчиков, что так должно быть!

Во первых ваше сравнение интерфейса стандартных индикаторов и пользовательских не совсем корректно.

Стандартные это индикаторы подвергшиеся жёсткой оптимизации, интерфейс как видите у них немного отличен.

теперь по существу почему нельзя:

цвет индикатора указывается в директиве предпроцессору, она загржается первой, за ней идут инпут параметры.

Директивы предпроцессору неизменяемы извне, хотя бы потому что в MQL5 нет исключений #if #endif

те вы не можите создать настраиваемую директиву предпроцессору.

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

 

Urain!

Нет кода для Moving Average!

Причем тут предпроцессор? 

 Я не создаю индикатор, а потом изменяю его цвет!

Индикатор создаётся с параметром цвета. 

params[0].type = TYPE_INT;
        params[0].integer_value = 10;
        
        params[1].type = TYPE_INT;
        params[1].integer_value = 0;
        
        params[2].type = TYPE_INT;
        params[2].integer_value = MODE_SMA;
        
        params[3].type = TYPE_INT;
        params[3].integer_value = PRICE_MEDIAN;
        
        params[4].type = TYPE_COLOR;
        params[4].double_value = clrBlue;
        
        ma_handle = IndicatorCreate( NULL, PERIOD_CURRENT, IND_MA, 5, params );
        if ( ma_handle != INVALID_HANDLE )
      {
        ChartIndicatorAdd( 0, 0, ma_handle );
      }

 

 

Михаил