dikey çizgi. - sayfa 2

 
Alexey Viktorov :

Neye ihtiyacınız olduğuna siz karar verin...

Karıştırmak gerekirse, sadece bazen zikzakın iki dikey bölümü arasındaki bağlantıları çıkarın, o zaman renkli bir zikzak almak ve duruma göre yerlerde renk yokluğunu atamak daha iyidir.

Ve genel olarak, grafik yapılarla ilgili belgelerin tüm bölümünü okumaktan zarar gelmez. En azından neler yapılabileceğine dair bir fikir olacak ...

" Zaman ve fiyat olarak iki nokta arasına çizgi çekecek bir gösterge yapmaya başladım...

Her şey yolunda ama bazen puanların zamanı tek bir mumda olabilir..."

Benim sövem, açıklamada, segmentleri değil, kelime satırını kullanmamdır. Resmi hemen eklemeliydim.

Teşekkürler, renkli bir zikzak deneyeceğim, eğimli bir segment için ek bir tampon yapmaktan daha kolay olacağını düşünüyorum.
 
Alexey Viktorov :

Karıştırmak gerekirse, sadece bazen zikzakın iki dikey bölümü arasındaki bağlantıları çıkarın, o zaman renkli bir zikzak almak ve duruma göre yerlerde renk yokluğunu atamak daha iyidir.

Eh, renkli bir zikzak içine renk yokluğunu ekleyemem gibi değil. Zor değilse (Sanırım sizin için 5 dakikadan fazla sürmez), bu örnekte renk yokluğunu atayabilir misiniz? Hangi çizgilerin kaybolması gerektiğini gösteren bir resim eklendi.


 #property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots    1
//--- plot ZigZag
#property indicator_label1    "ZigZag"
#property indicator_type1    DRAW_COLOR_ZIGZAG
#property indicator_color1    clrRed , clrYellow
#property indicator_style1    STYLE_SOLID
#property indicator_width1    10
//--- input параметры
//--- indicator buffers
double          ZigZagBuffer1[];
double          ZigZagBuffer2[];

int             color_sections;
double          Color_ZigzagColors[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- связывание массивов и индикаторных буферов
   SetIndexBuffer ( 0 ,ZigZagBuffer1, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,ZigZagBuffer2, INDICATOR_DATA );
   SetIndexBuffer ( 2 ,Color_ZigzagColors, INDICATOR_COLOR_INDEX );
   color_sections= 0 ; 

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   int limit=prev_calculated;
   if (prev_calculated== 0 )limit=rates_total- 1 ;

   for ( int i2=limit;i2<rates_total;i2++) // recalculate on new bar
     {
       for ( int i= 0 ;i<rates_total;i++)
        {
         if (i==rates_total- 3 || i==rates_total- 12 ||  i==rates_total- 18 ) // Test VLines and TLines! 
           {
            ZigZagBuffer1[i]=high[i];
            Color_ZigzagColors[i]=color_sections;
           }
         else
           {
            ZigZagBuffer1[i]= EMPTY_VALUE ;
           }

         if (i==rates_total- 7 || i==rates_total- 12 || i==rates_total- 20 ) // Test VLines and TLines!   
           {
            ZigZagBuffer2[i]=low[i];
            Color_ZigzagColors[i]=color_sections;
           }
         else
           {
            ZigZagBuffer2[i]= EMPTY_VALUE ;
           }

        }
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
Nauris Zukas :

Eh, renkli bir zikzak içine renk yokluğunu ekleyemem gibi değil. Zor değilse (Sanırım sizin için 5 dakikadan fazla sürmez), bu örnekte renk yokluğunu atayabilir misiniz? Hangi çizgilerin kaybolması gerektiğini gösteren bir resim eklendi.


1.

 #property indicator_color1    clrRed , clrNone

2.

Color_ZigzagColors[i]= 0 ;

renk kırmızı olacak

Color_ZigzagColors[i]= 1 ;

Renk eksik olacaktır.

Bir değişken

 int             color_sections;
oldukça gereksiz.
 
Alexey Viktorov :

1.

2.

renk kırmızı olacak

Renk eksik olacaktır.

Bir değişken

oldukça gereksiz.

Teşekkür ederim ama fonksiyon düzeyinde uygulayamıyorum, bu satırların kaybolması için fonksiyonlara ne eklenmeli ne çıkarılmalı? Buraya clrNone nasıl enjekte edilir?

         if (i==rates_total- 3 || i==rates_total- 12 ||  i==rates_total- 18 ) // Test VLines and TLines! 
           {
            ZigZagBuffer1[i]=high[i];
            Color_ZigzagColors[i]= 0 ;
           }
         else
           {
            ZigZagBuffer1[i]= EMPTY_VALUE ;
           }

         if (i==rates_total- 7 || i==rates_total- 12 || i==rates_total- 20 ) // Test VLines and TLines!   
           {
            ZigZagBuffer2[i]=low[i];
            Color_ZigzagColors[i]= 0 ;
           }
         else
           {
            ZigZagBuffer2[i]= EMPTY_VALUE ;
           }
           
 
Nauris Zukas :

Teşekkür ederim ama fonksiyon düzeyinde uygulayamıyorum, bu satırların kaybolması için fonksiyonlara ne eklenmeli ne çıkarılmalı? Buraya clrNone nasıl enjekte edilir?

Bir yerde 0 başka bir yerde 1

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

dikey çizgi.

Alexey Viktorov , 2018.10.12 17:29

Color_ZigzagColors[i]= 0 ;

renk kırmızı olacak

Color_ZigzagColors[i]= 1 ;

Renk eksik olacaktır.

Ve kodunuzda iki durumda aynıdır

Color_ZigzagColors[i]= 0 ;


 
Alexey Viktorov :

Bir yerde 0 başka bir yerde 1

Ve kodunuzda iki durumda aynıdır


İşte olanlar (daha açık hale getirmek için clrYellow yerine clrNone koydum). Bağlantı hatlarının kaybolduğu (mavi çarpılarla işaretlenmiş) yer ve ayrıca orta dikey çizgi (kırmızı daire içine alınmış) kaybolur. Bu nedenle, işlevler düzeyinde zaten bir şeylerin yanlış olduğuna inanıyorum.


 
Nauris Zukas :

İşte olanlar (daha açık hale getirmek için clrYellow yerine clrNone koydum). Bağlantı hatlarının kaybolduğu (mavi çarpılarla işaretlenmiş) yer ve ayrıca orta dikey çizgi (kırmızı daire içine alınmış) kaybolur. Bu nedenle, işlevler düzeyinde zaten bir şeylerin yanlış olduğuna inanıyorum.


Kodu ve çizimi elle değil, gösterge tarafından çizilen çizgilerle sağlayın. Bir zikzakın dikey bölümlerini çizme yeteneği oldukça yakın zamanda ortaya çıktı. Raşid Umarov bu tartışmaya katıldı ve onun önerisi üzerine böyle bir değişiklik yapıldı. Bu seçenek onaylanırsa, Rashid'i davet edeceğiz.

 
Alexey Viktorov :

Kodu ve çizimi elle değil, gösterge tarafından çizilen çizgilerle sağlayın. Bir zikzakın dikey bölümlerini çizme yeteneği oldukça yakın zamanda ortaya çıktı. Raşid Umarov bu tartışmaya katıldı ve onun önerisi üzerine böyle bir değişiklik yapıldı. Bu seçenek onaylanırsa, Rashid'i davet edeceğiz.


Dosyalar:
 
Nauris Zukas :


İlginç bir şekilde, bu kadar kalın çizgilerle elle çizilmiş çizgiler gibi görünüyor ...

@Raşid Umarov

Konulardan birinde, DRAW_ZIGZAG dikey bir çizgi çizmenin imkansızlığı hakkında bir tartışmaya katıldınız. Örnek önceki gönderide. Bu tartışmadan sonra değişiklikler yapıldı ve böyle bir fırsat ortaya çıktı. Şimdi DRAW_COLOR_ZIGZAG ile ilgili başka bir sorun ortaya çıktı, rengi her segment için sırayla ayarlamak imkansız. Belki de bu grafik ekran eksikliğini düzeltmek için bir fırsat var mı?

 
Alexey Viktorov :

İlginç bir şekilde, bu kadar kalın çizgilerle elle çizilmiş çizgiler gibi görünüyor...

@Raşid Umarov

Konulardan birinde, DRAW_ZIGZAG dikey bir çizgi çizmenin imkansızlığı hakkında bir tartışmaya katıldınız. Örnek önceki gönderide. Bu tartışmadan sonra değişiklikler yapıldı ve böyle bir fırsat ortaya çıktı. Şimdi DRAW_COLOR_ZIGZAG ile ilgili başka bir sorun ortaya çıktı, rengi her segment için sırayla ayarlamak imkansız. Belki de bu grafik ekran eksikliğini düzeltmek için bir fırsat var mı?

Olursa, yakında olmayacak. Yüzüncü sırada bir yerde olacak, ne kadar öncelikli olmayan bir görev.