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

 

Добрый день, Yedelkin!

 Извините, вот ответы на Ваши вопросы. 

MqlParam params[5];
int ma_handle;

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].integer_value = clrBlue;
        
        ma_handle = IndicatorCreate( NULL, PERIOD_CURRENT, IND_MA, 5, params );
        if ( ma_handle != INVALID_HANDLE )
      {
        ChartIndicatorAdd( 0, 0, ma_handle );
      }

 

 

 Индикатор создаётся, но его цвет КРАСНЫЙ.

И еще. Предыдущее сообщение предназначалось не вам, а stringo,

за исключением параметров индикатора МА.

Если это Вас как-то обидело - прошу прощения.  

 

С уважением, Михаил. 

 
Mikalas:

И еще. Предыдущее сообщение предназначалось не вам, а stringo,

Читаю обычно ровно то, что написано: "Добрый день, stringo и Yedelkin!". Urain уже отметил вчера, что я "не умею читать между строк".

Из основного ответа видно, что обнуление массива params не проводится (а у каждой переменной типа MqlParam  4 поля, а не 2). Не видно ответа на примечание: "Кроме того, индикатор IND_MA(iMA) не имеет такого параметра, как "Цвет", а у Вас он указан. Посмотрите пример использования iMA вот здесь: Справочник MQL5 / Доступ к таймсериям и индикаторам / IndicatorCreate".

Не указан код возвращаемой ошибки. 

 

Уважаемый Yedelkin!

Oбнуление массива params производить не нужно, т.к это статический массив (params[5]) и я

заполняю все его поля.  Кстати, достаточно заполнение  2-х полей. Думаю, в зависимости от ТИПА берется одно из 3-х

последующих полей.

Кода ошибки нет(ma_handle != INVALID_HANDLE), индикатор создаётся. 

Скажите, сколько на картинке параметров у индикатора?

МА 

 

 

Михаил 

 
Mikalas:

Кода ошибки нет, индикатор создаётся. 

Сначала Вы пишите "Этот код должен был работать, НО.... увы...". Теперь, оказывается, "индикатор создаётся". ....Насчёт "Кода  ошибки нет" - код ошибки всегда есть, даже если он равен нулю.

По поводу картинки. Вы повторно сводит вопрос к обсуждению возможного, на Ваш взгляд, бага. Но изначально завели разговор про применение функции IndicatorCreate() в Вашем коде. Как Вы сами понимаете,  функция IndicatorCreate() не работает с картинками. В который раз предлагаю: посмотрите документацию и примеры к ней. Узнайте (догадайтесь), почему на вкладке параметры появляется опция "Стиль", а во входных параметрах индикатора iMA такой опции нет. Выясните, какие ВХОДНЫЕ (input) параметры предусмотрены для выбранного Вами индикатора и какие из них следует отражать в функции IndicatorCreate().

 

Понятно, спасибо.

 
Mikalas:

Скажите, сколько на картинке параметров у индикатора?

На данной вкладке - 7 параметров.
 

В отличии от iMA(4 параметра), функция

IndicatorCreate должна вводить все возможные параметры

Справочник MQL5:

 

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

parameters_array[]=NULL

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

Вы меня отсылаете к справочнику, а сами его не читаете? 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Типы индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Типы индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Типы индикаторов - Документация по MQL5
 
Mikalas:

Вы меня отсылаете к справочнику, а сами его не читаете? 

Начинается. При таком подходе можете оказаться один на один со своей проблемой.

По теме. То, что заглянули в Справочник, -  хорошо. Теперь повторно откройте на той же странице. Видите строчку: "Массив типа MqlParam, элементы которого содержат тип и значение каждого входного параметра технического индикатора". Что такое "входной параметр" - это "input-параметр" (Справочник MQL5 / Основы языка / Переменные / Input переменные). Теперь ищите ответ на неединожды заданный вопрос: "сколько input-параметров у технического индикатора iMA?

Mikalas:

В отличии от iMA(4 параметра), функция IndicatorCreate должна вводить все возможные параметры 

Итак, если у iMA -  4 input-параметра, то сколько надо "вводить" входных параметров в IndicatorCreate()? Повторяю ещё раз: IndicatorCreate() не работает с картинками. Точнее, IndicatorCreate() работает не с картинками, а с входными параметрами инддикатора, которые передаёт непосредственно индикатору. Куда она передаст картинную опцию "Стиль", если такого входного параметра у индикатора нет?
 

У индикатора МА - 7 параметров!

Для функции iMA достаточно 4-х параметров

 ma_handle = iMA( _Symbol, TimeFrame, 10, 0, MODE_SMA, PRICE_MEDIAN );,

а для функции IndicatorCreate() должны быть возможны все 7 параметров индикатора.

parameters_array[]=NULL

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

И ещё... Вы кто по профессии? 

 
Mikalas:

а для функции IndicatorCreate() должны быть возможны все 7 параметров индикатора.

Это Ваш вывод, и с ним Вам жить :) Сервисдеск - в помощь.
Причина обращения: