Как рисовать экспертом ZigZag - страница 3

 
Dmitry Fedoseev:


Ни дня без бреда, да?

Где угодно и сколько угодно зигзагов с одним буфером. Для рисования зигзага достаточно одного буфера.

Ну не вам же одному бредить...
Откройте индикатор ЗЗ из поставки МТ4 и протрите глаза. Можете к окулисту пойти даже, если видите там только один буфер. А если непонятно значение второго и третьего буферов, то я вам могу только посочувствовать, бредолог вы наш дорогой. Вообще, если  что-то не нравится -мимо проходите, необязательно выпячивать свой неохаатный умище. Да, я видел всякие ЗЗ, рас вас так мучает этот вопрос.
 
Vitalie Postolache:

Виталий, вы очень толковый программист, я вам верю без сомнения и всегда в первую очередь важно именно ваше мнение.
 
Vitalie Postolache:
Ну не вам же одному бредить...
Откройте индикатор ЗЗ из поставки МТ4 и протрите глаза. Можете к окулисту пойти даже, если видите там только один буфер. А если непонятно значение второго и третьего буферов, то я вам могу только посочувствовать, бредолог вы наш дорогой. Вообще, если  что-то не нравится -мимо проходите, необязательно выпячивать свой неохаатный умище. Да, я видел всякие ЗЗ, рас вас так мучает этот вопрос.

Для ЗЗ достаточно одного буфера. Хотя можно использовать и больше. И хамить не надо. Не стоит оно того.
 
Vitalie Postolache:
Ну не вам же одному бредить...
Откройте индикатор ЗЗ из поставки МТ4 и протрите глаза. Можете к окулисту пойти даже, если видите там только один буфер. А если непонятно значение второго и третьего буферов, то я вам могу только посочувствовать, бредолог вы наш дорогой. Вообще, если  что-то не нравится -мимо проходите, необязательно выпячивать свой неохаатный умище. Да, я видел всякие ЗЗ, рас вас так мучает этот вопрос.

Ну вот и протри глаза и посмотри во вкладке цвета сколько буферов у зигзага из МТ4. У него всегда было достаточно смотреть только один буфер, все данные из него извлекаются через один буфер, а то что у него внутри еще буферы, они для вспомогательных расчетов. 
 
Natalya Dzerzhinskaya:

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

Ветка юмора что ли? Тогда я пошел отсюда...
 

Советник рисует трендовые линии по точкам high-low по сигналу ZZ с начала старта и далее, используя нулевой буфер.
Пришлось по маневрировать и вот такой вариант получился:

#resource "\\Indicators\\ZigZag.ex4" 
//----------------------------------------+
extern int    ZZperiod    = 15;
extern int    SizeLineZZ  = 2;
extern color  ColorZZ     = Gold;
//----------------------------------------+
int i,SignalZZ=-1;
bool LoB=true,HiB=true,LoS=true,HiS=true;
double PLowB=0,PHighB=0,PLowS=0,PHighS=0;
datetime TLowB=0,THighB=0,TLowS=0,THighS=0;
//----------------------------------------+
void start() {
//----------------------------------------- Signal_ZigZag ---------------------------------------------+   
          double fZZ=0;
          double lZZ=iCustom(Symbol(),0,"::Indicators\\ZigZag.ex4",ZZperiod,5,3,0,1);
          if(lZZ>0){ i=2; while(iCustom(Symbol(),0,"::Indicators\\ZigZag.ex4",ZZperiod,5,3,0,i)==0) i++;
          fZZ=iCustom(Symbol(),0,"::Indicators\\ZigZag.ex4",ZZperiod,5,3,0,i);}
             if(lZZ>fZZ) {SignalZZ=0;}  else if(lZZ<fZZ) SignalZZ=1;
//----LineUP
      if(LoB) {PLowB=Low[0];TLowB=Time[0];LoB=false;} else if(PLowB>Bid)LoB=true;
      if(HiB) {PHighB=High[0];THighB=Time[0];HiB=false;} else if(PHighB<Bid)HiB=true;   
      if(SignalZZ==0) ObjectLine("Up",TLowB,PLowB,THighB,PHighB);
      if(High[0]>PHighB) ObjectDelete("LineUp "+(string)THighB); //Перемещение линии по новым high
//----LineDN
      if(LoS) {PLowS=Low[0];TLowS=Time[0];LoS=false;} else if(PLowS>Bid)LoS=true;
      if(HiS) {PHighS=High[0];THighS=Time[0];HiS=false;} else if(PHighS<Bid)HiS=true;   
      if(SignalZZ==1) ObjectLine("Dn",THighS,PHighS,TLowS,PLowS);
      if(Low[0]<PLowS) ObjectDelete("LineDn "+(string)TLowS);   //Перемещение линии по новым low
//----LineNewParametrs
      if(SignalZZ==1) {PHighB=PLowS;THighB=TLowS;PLowB=PLowS;TLowB=TLowS;}
      if(SignalZZ==0) {PLowS=PHighB;TLowS=THighB;PHighS=PHighB;THighS=THighB;}
   return; 
//-----------------+
}//   Start END    |
//-----------------+
//-------------------------------------+
void init()
{
return;
}
//------------------------------------+
void deinit() 
{
   for (i=Bars-1;i>=0;i--){ 
   ObjectDelete("LineUp "+(string)THighB);
   ObjectDelete("LineDn "+(string)TLowS);} 
return;
}
//+-----------------------------------------------------+ 
//| Прорисовка сигнала ZigZag                           | 
//+-----------------------------------------------------+ 
void ObjectLine(string signal,datetime T1,double P1,datetime T2,double P2){
   string Line="Line"+signal+" "+(string)T2;
   ObjectCreate(Line,OBJ_TREND,0,T1,P1,T2,P2);
   ObjectSet(Line,OBJPROP_RAY,false);
   ObjectSet(Line,OBJPROP_COLOR,ColorZZ);
   ObjectSet(Line,OBJPROP_WIDTH,SizeLineZZ);}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<|
Причина обращения: