пользовательский индикатор

 

Добрый день.

Нужна ваша помощь.

Не могу самостоятельно разобраться в силу малого опыта.

 

Пытаюсь сделать пользовательский индикатор на основе МА, но возникла сложность, которую не могу понять как решить.

Суть индикатора:  быстрая МА(5) пересекает медленную МА(55) снизу вверх - это тренд вверх, индикатор показывает в виде гистограммы зеленые столбцы, до тех пор пока не произойдет обратное пересечение. Обратное пересечение - это тренд вниз, отображается в виде красных столбцов.

Суть проблемы:

Созданный мной индикатор показывает только точки пересечения скользящих (см. скриншот - http://prntscr.com/8hoh1g). Как сделать чтобы после пересечения скользящих индикатор продолжал показывать соответствующие столбцы?

 
varyar84:

Добрый день.

Нужна ваша помощь.

Не могу самостоятельно разобраться в силу малого опыта.

 

Пытаюсь сделать пользовательский индикатор на основе МА, но возникла сложность, которую не могу понять как решить.

Суть индикатора:  быстрая МА(5) пересекает медленную МА(55) снизу вверх - это тренд вверх, индикатор показывает в виде гистограммы зеленые столбцы, до тех пор пока не произойдет обратное пересечение. Обратное пересечение - это тренд вниз, отображается в виде красных столбцов.

Суть проблемы:

Созданный мной индикатор показывает только точки пересечения скользящих (см. скриншот - http://prntscr.com/8hoh1g). Как сделать чтобы после пересечения скользящих индикатор продолжал показывать соответствующие столбцы?

 

 

Не пересчение сранвнивай, а просто

if(MA1>MA2) buf_up[i]=1;

if(MA1<MA2) buf_down[i]=1;

if(MA1==MA2) buf_f[i]=1;
 
eevviill:

Не пересчение сранвнивай, а просто

попробую, спасибо
 

Попробовал, вариант конечно, но не совсем подходит для моих целей.

 Вот сейчас код выглядит так.

//--------------------------------------------------------------------      
      if(МА5_1>МА55_1 && МА5_2<МА55_2)
       { 
        UpMove=1;
       } 
       else
       {
        UpMove=0;
       }
      if(МА5_1<МА55_1 && МА5_2>МА55_2)
       { 
        DownMove=1;
       } 
       else
       {
        DownMove=0;
       }            
//-------------------------------------------------------------------- 
      Buf_0[i]=UpMove;             // Значение 0 буфера на i-ом баре
      Buf_1[i]=DownMove;              // Значение 1 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }

 

Можно ли как то использовать для определения текущего значения DownMove, предыдущие значения?

Например: 

if(DownMove [i-1]=1)
 
DownMove [i]=DownMove [i-1]
varyar84
:

Попробовал, вариант конечно, но не совсем подходит для моих целей.

 Вот сейчас код выглядит так.

 

Можно ли как то использовать для определения текущего значения DownMove, предыдущие значения?

Например: 

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