Индикаторы: Ma_Parabolic_st2

 

Ma_Parabolic_st2:

Параболик, нарисованный от минимумов и максимумов движущейся средней. Эффективно показывает тренды на малых таймфреймах, позволяя исключить в большей степени частые переключения, характерные для индикатора "Parabolic SAR".

Author: Victor Lukashuck

 

А на каких вр. периодах лутше всего применять,и с каким балансом надо быть,чтоб этот пар.не загнал в долги?

 

Вы могли бы сделать еще буфера для этого индикатора раздельные для сигналов вверх и вниз ?

 
OZ0:

Вы могли бы сделать еще буфера для этого индикатора раздельные для сигналов вверх и вниз ?

Нет не мог бы. При раздельных 2 буферах вверх и вниз индикатор будет рисовать точки на 1 бар позже. Разьве это не понятно? И для обычного "Параболика" такая же ситуация...

 
OZ0:

Вы могли бы сделать еще буфера для этого индикатора раздельные для сигналов вверх и вниз ?

дальше мы знаем - пойдут цветочки, стрелочки звонки, алертики, емели

код обростет; если автор не хочет - то не хорошо приставать (красота кода нарушается, и некоторые авторы за это убить могут)

спросите на форумах- там нацепляют сверху всего, но - глаза не видят -сердце не болит : )

 
lukas1:
OZ0:

Вы могли бы сделать еще буфера для этого индикатора раздельные для сигналов вверх и вниз ?

Нет не мог бы. При раздельных 2 буферах вверх и вниз индикатор будет рисовать точки на 1 бар позже. Разьве это не понятно? И для обычного "Параболика" такая же ситуация...

спасибо за объяснение

правда совершенно не понятно откуда это должно быть понятно

был 1 буфер станет 2 почему опоздание появится ???

кстати забываю благодарить за Ваши индикаторы очень помогают

 
fxxx:
OZ0:

Вы могли бы сделать еще буфера для этого индикатора раздельные для сигналов вверх и вниз ?

дальше мы знаем - пойдут цветочки, стрелочки звонки, алертики, емели

код обростет; если автор не хочет - то не хорошо приставать (красота кода нарушается, и некоторые авторы за это убить могут)

спросите на форумах- там нацепляют сверху всего, но - глаза не видят -сердце не болит : )

для меня это новый код в остальных знаю как все цеплять а вот как разделять буфера в таких индикаторах не понимаю

 
OZ0:
для меня это новый код в остальных знаю как все цеплять а вот как разделять буфера в таких индикаторах не понимаю

как Лукас сказал - разделять нельзя (разве что кто хочет писать новый) - набрасывайте сверху два дополнительных буфера с цветами, оригинал SarBuffer остается тот же, но не рисуйте (толька цветы)

if (SarBuffer[i]>MaBuffer[i]) SarBufferDn[i]=SarBuffer[i]; else SarBufferUp[i]=SarBuffer[i]

да, и Лукасу на глаза постарайтесь не попадать : )))

 
fxxx:
OZ0:
для меня это новый код в остальных знаю как все цеплять а вот как разделять буфера в таких индикаторах не понимаю

как Лукас сказал - разделять нельзя (разве что кто хочет писать новый) - набрасывайте сверху два дополнительных буфера с цветами, оригинал SarBuffer остается тот же, но не рисуйте (толька цветы)

if (SarBuffer[i]>MaBuffer[i]) SarBufferDn[i]=SarBuffer[i]; else SarBufferUp[i]=SarBuffer[i]

да, и Лукасу на глаза постарайтесь не попадать : )))

я бы набросил, но не понимаю как (уже писал)

что значит не попадайтесь - я уже об этом мечтаю ...

 
Вот код для индикатора с дополнительными буферами № 2 и № 3.
 
//+------------------------------------------------------------------+
//|                                          Ma-Parabolic_st2_02.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                      Copyright © 2008, Лукашук В.Г. aka lukas1.  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes + lukas1"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Crimson
#property indicator_color2 DeepSkyBlue
#property indicator_width1 1
#property indicator_width2 2
//---- input parameters
extern int    Ma=30;
extern int    method=3;
extern int    app_price=0;
extern double Step=0.12;
extern double Maximum=0.032;
//---- buffers
double SarBuffer[];
double MaBuffer[];
double UpBuf[],DnBuf[];
//----
static bool first=false;
bool   dirlong;
double start,last_high,last_low;
double ep,sar,price_low,price_high;
int    i,j;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorDigits(Digits);
   string SS=DoubleToStr(Step,4);
   string MM=DoubleToStr(Maximum,4);
   SetIndexLabel(0,"Step= "+SS+", Max= "+MM); 
   SetIndexStyle(0,DRAW_ARROW,0,1);
   SetIndexArrow(0,159);
   SetIndexBuffer(0,SarBuffer);
   SetIndexDrawBegin(0, 4/Step); 
//----
   SetIndexLabel(1,"period= "+Ma); 
   SetIndexStyle(1,DRAW_LINE,0,2);
   SetIndexBuffer(1,MaBuffer);
   SetIndexDrawBegin(0, 4/Step+Ma); 
//----
   SetIndexBuffer(2,UpBuf);
   ArrayInitialize(UpBuf,10000000);//изначально фуфер будет равен значению 10000000
   SetIndexStyle(2,DRAW_NONE); // на графике ничего не рисуем
//----
   SetIndexBuffer(3,DnBuf);
   ArrayInitialize(UpBuf,-10000000);//изначально фуфер будет равен значению -10000000
   SetIndexStyle(3,DRAW_NONE); // на графике ничего не рисуем
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Parabolic Sell And Reverse system                                |
//+------------------------------------------------------------------+
int start()
  {
   if(Bars<5) return(0);
   dirlong=true;
   start=Step;
//--------------------------------------------+
   for(j=Bars-4;j>=0;j--)
      MaBuffer[j] = iMA(Symbol(),0,Ma,0,method,app_price,j);
   int i=Bars-4;
   while(i>=0)
     {
      price_low=MaBuffer[i]-Point;
      price_high=MaBuffer[i]+Point;
      //sar равен цена предыдущего бара плюс шаг умножить на 
      //(старая цена минус значение SarBuffer предыдущего бара)
      sar=SarBuffer[i+1]+start*(ep-SarBuffer[i+1]);
//----
      if(dirlong)//цепочка вверх
        {
         if(ep<price_high && (start+Step)<=Maximum) start+=Step;
         if(sar>=price_low)//если условия для переключения наступили
           {
            start=Step; 
            dirlong=false; 
            ep=price_low;//устанавливаем последнюю цену = минимум
            last_low=price_low;
            if(MaBuffer[i]+Point<last_high) SarBuffer[i]=last_high;
            else SarBuffer[i]=MaBuffer[i]+Point;
            i--;
            continue;
           }
         else
           {
            if(ep<price_low && (start+Step)<=Maximum) start+=Step;
            //и пересчитываем last_high и ep для расчета следующей точки максимума
            if(ep<price_high) { last_high=price_high; ep=price_high; }
           }
        }
//----
      else//цепочка вниз
        {
         if(ep>price_low && (start+Step)<=Maximum) start+=Step;
         if(sar<=price_high)//если наступили условия переключения
           {
            start=Step; 
            dirlong=true; 
            ep=price_high;//устанавливаем последнюю цену = максимум
            last_high=price_high;
            if(MaBuffer[i]-Point>last_low) SarBuffer[i]=last_low;
            else SarBuffer[i]=MaBuffer[i]-Point;
            i--;
            continue;
           }
         else
           {
            if(ep>price_high && (start+Step)<=Maximum) start+=Step;
            //если условия для переключения не наступили
            //то пересчитываем last_low и ep для расчета следующей точки минимума
            if(ep>price_low){last_low=price_low;ep=price_low;}
           }
        }
      SarBuffer[i]=sar;
      if(SarBuffer[i]>MaBuffer[i]) DnBuf[i]=sar;
      if(SarBuffer[i]<MaBuffer[i]) UpBuf[i]=sar;
      i--;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Это картинка значений по нулевому буферу индикатора
Это картинка значений по первому буферу индикатора
Это картинка значений по второму буферу индикатора
Это картинка значений по третьему буферу индикатора
Видим отставание отображения второго и третьего буферов на один бар.
 
Mihalyh:

А на каких вр. периодах лутше всего применять,и с каким балансом надо быть,чтоб этот пар.не загнал в долги?

Да люди которые пытаются что то к этим индюкам добавить не могут уяснить элементарного - принцыпиальных основ данных разработок нарушать нельзя чушь получается. Что то ресуют малюют а в этоге от элементарного незнания основ мы еще дальше уходим от прогресса . Большая часть работ на этой базе 99% просто чушь малеванная .

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