DRAW_COLOR_LINE и DRAW_LINE проблемы со стрелками. - страница 2

 
jaffer wilson:

Я хочу, чтобы индикатор показывал график как с DRAW_LINE. Я хочу иметь тот же эффект с DRAW_COLOR_LINE.

Библиотека отлично работает с DRAW_LINE, как я уже говорил. Проблема возникает, когда я меняю DRAW_LINE на DRAW_COLOR_LINE.

Следовательно, единственное, чего я хочу - это получить тот же эффект с DRAW_COLOR_LINE, что и с DRAW_LINE.

Это я понял, а с алгоритмом индикатора, видимо придётся разбираться самому, пообещал ведь.

 
Alexey Viktorov :
I understand that with the indicator algorithm. Well, have to figure it out. He promised after all.

Танк, сэр. Я благодарен. Меня смущает, почему это происходит даже после стольких изменений в индикаторе. Почему работа с DRAW_LINE дает результат, а не DRAW_COLOR_LINE.

 
jaffer wilson:

Танк, сэр. Я благодарен. Меня смущает, почему это происходит даже после стольких изменений в индикаторе. Почему работа с DRAW_LINE дает результат, а не DRAW_COLOR_LINE.

Индикатор с DRAW_LINE тоже не работает.


Видимо вам придётся объяснять алгоритм словами.

 
Alexey Viktorov :

The indicator with DRAW_LINE does not work either.


Apparently you have to explain the algorithm in words.

Сэр, пожалуйста, позвольте мне объяснить еще раз. Я пытаюсь сделать это.

Это то, что я получаю с DRAW_LINE. Я хочу достичь и с DRAW_COLOR_LINE:

Теперь вы видите, что я получаю с DRAW_COLOR_LINE, даже после нескольких попыток:

Я хочу получить тот же результат с DRAW_COLOR_LINE, что и с DRAW_LINE.

Надеюсь, это поможет. Я попробовал и скомпилировал снова.

Сэр, пожалуйста, помогите мне.

 

И так, по-порядку:

#property indicator_buffers 10
#property indicator_plots   5  // Достаточно 5 в вашем коде 6
   SetIndexBuffer(2,Buy,INDICATOR_DATA);        // Индекс буфера 2
   //ArraySetAsSeries(Buy,true);
   PlotIndexSetString(1,PLOT_LABEL,"BuyArrow"); // НО!!! индекс построения 1
   PlotIndexSetInteger(1,PLOT_ARROW,242);
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0);

и так по всем PlotIndexSet***

При первом запуске обязательно обнулить буферы

   if(prev_calculated==0)
     {
      ArrayInitialize(Buy, 0.0);
      ArrayInitialize(Sell, 0.0);
      ArrayInitialize(right, 0.0);
      ArrayInitialize(wrong, 0.0);
      ExtDeMaxBuffer[0]=0.0;
      ExtDeMinBuffer[0]=0.0;

И обязательно обнулять значение буфера если оно не должно отображаться.

     Buy[rates_total - 1 ] = 1.0;
     Sell[rates_total-1] = 0.0;
и наоборот если в буфер Sell заносим значение 1.0 то буфер Buy должен быть равен 0.0

Так-же с другой парой буферов

     wrong[rates_total-1] = 0.7;
     right[rates_total-1] = 0.0;

Тогда в тестере получается такая картинка

Остаётся только назначить цвет линии индикатора. Но это уже самостоятельно делайте.

 
Alexey Viktorov :

And so, in order:

and so on all PlotIndexSet ***

When you first start

It should not be displayed.

Buy it should be set to 1.0, then buy it should be 0.0

Also with a different pair of buffers.

Then the tester gets such a picture.

It remains the line of the indicator line. But do it yourself.

Ох .. Это потрясающе, сэр. Это было действительно полезно. Спасибо. Я не могу объяснить, как я перегружен. Большое спасибо, сэр.

 
jaffer wilson:

Ох .. Это потрясающе, сэр. Это было действительно полезно. Спасибо. Я не могу объяснить, как я перегружен. Большое спасибо, сэр.

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