Ошибки, баги, вопросы - страница 2282

 
TaywinLannister:

Ребят подскажите пожалуйста, как в mql5 получить значение индикатора для предыдущих баров.

В mql 4 была переменная СДВИГ, а в mql 5 её нет. HELP

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   int       start_pos,            // откуда начнем 
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

И есть другие реализации. Как с фломастерами, цвет разный, а вкус одинаковый.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
 
Как получить цвет из цветового буфера индикатора ?
 
Vladimir Pastushak:
Как получить цвет из цветового буфера индикатора ?
Каждый буфер имеет свой номер. А в функции CopyBuffer вторым параметром идёт именно номер буфера. Но это будет не цвет, а индекс в массиве цветов. Но с этим, надеюсь справитесь самостоятельно.
 
Alexey Viktorov:
Каждый буфер имеет свой номер. А в функции CopyBuffer вторым параметром идёт именно номер буфера. Но это будет не цвет, а индекс в массиве цветов. Но с этим, надеюсь справитесь самостоятельно.

не понял, можно поподробнее ?

#property indicator_color2  clrBlue, clrRed
SetIndexBuffer(1,upper_line_color,INDICATOR_COLOR_INDEX);   

Как из буфера upper_line_color получить цвет ????

 
Vladimir Pastushak:

не понял, можно поподробнее ?

Код выдран из индикатора

#property indicator_buffers   5
#property indicator_plots     1
#property indicator_type1     DRAW_COLOR_BARS
#property indicator_color1    clrDarkViolet, clrCrimson, clrYellow

Система формирует массив с тремя цветами. (если можно так сказать скрытый массив, недоступный программисту.)

   SetIndexBuffer(4, colorBufer, INDICATOR_COLOR_INDEX);

Индикаторный буфер 4 содержит индексы цвета из массива цветов

     colorBufer[j] = open[j] < close[j] ? 0.0 : open[j] > close[j] ? 1.0 : 2.0;

И тут в индикаторный буфер заносится индекс цвета, а система по индексу выбирает цвет из перечисленных и внесённых в массив.

Соответственно воспользовавшись функцией

CopyBuffer(indicator_handle, 4, 0, 1, buffer);

получим индекс цвета на последнем баре в заранее объявленный массив buffer[]


ps; Пока я писал, вопрос был добавлен. Надеюсь этого пояснения достаточно. Исправлять не хочется.

 
Ошибка при выполнении
void OnStart()
{
    string text1 = "\0ABCDEF",
           text2 = "\0ABC";
    Print(                text1 == text2,        ":",
           StringCompare( text1,   text2 ) == 0, ":", StringLen(text1), ":", StringLen(text2));
}

Результат: true:false:7:4

Это как это строки разной длины оказались вдруг равны? При том что сравнение с помощью StringCompare дает противоположный == результат

 
Alexey Viktorov:

Код выдран из индикатора

Система формирует массив с тремя цветами. (если можно так сказать скрытый массив, недоступный программисту.)

Индикаторный буфер 4 содержит индексы цвета из массива цветов

И тут в индикаторный буфер заносится индекс цвета, а система по индексу выбирает цвет из перечисленных и внесённых в массив.

Соответственно воспользовавшись функцией

получим индекс цвета на последнем баре в заранее объявленный массив buffer[]


ps; Пока я писал, вопрос был добавлен. Надеюсь этого пояснения достаточно. Исправлять не хочется.

И в буфер buffer  копируется не цвет а 0,0  1,0  2,0 

проверено не работает 


В моем вопросе написано про цвет а не про индекс, индекс получаем colorBufer[0] на последнем баре без всех этих махинаций...  Как вытащить именно название цвета или сам цвет по типу color ?

 
Vladimir Pastushak:

И в буфер buffer  копируется не цвет а 0,0  1,0  2,0 

проверено не работает

Проверено, РАБОТАЕТ.

Vladimir Pastushak:

В моем вопросе написано про цвет а не про индекс, индекс получаем colorBufer[0] на последнем баре без всех этих махинаций...  Как вытащить именно название цвета или сам цвет по типу color ?

А это уже называется "Не юли хвостом." я сразу сказал что получишь только индекс.

 
Alexey Viktorov:

Проверено, РАБОТАЕТ.

А это уже называется "Не юли хвостом." я сразу сказал что получишь только индекс.

А я сразу написал ЦВЕТ ...  Благодарю за то что откликнулись... Читайте вопросы внимательнее !!!

 
Vladimir Pastushak:

А я сразу написал ЦВЕТ ...  Благодарю за то что откликнулись... Читайте вопросы внимательнее !!!

Какой вопрос, такой и ответ. Есть два способа задать цвет отображению индикатора. Используй второй.

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