Ligne verticale. - page 2

 
Alexey Viktorov:

Tu dois décider ce que tu veux...

Si vous voulez du mixte, seulement parfois pour supprimer les liaisons entre deux sections verticales du zigzag, il est préférable de prendre un zigzag coloré et de placer, par condition, aucune couleur.

En fait, vous pouvez lire toute la section de la documentation consacrée au traçage graphique. Cela vous donnera une idée de ce qui peut être fait...

"J'ai commencé à faire un indicateur qui tracera des lignes entre deux points par le temps et le prix...

Tout est bon, mais parfois le temps des points peut être dans une seule bougie..."

C'est ma faute si j'ai utilisé le mot "ligne" au lieu de "segments de ligne". J'aurais dû insérer une photo tout de suite.

Merci, je vais essayer le zigzag coloré, je pense que ce sera plus facile que de faire un tampon supplémentaire pour le segment incliné.
 
Alexey Viktorov:

Si vous devez faire des mélanges, ne supprimez qu'occasionnellement les liaisons entre les deux sections verticales du zigzag, il est préférable de prendre un zigzag coloré et de ne lui attribuer aucune couleur par endroits, par convention.

Eh bien, pas comment j'obtiens le manque de couleur dans un zigzag coloré. Si ce n'est pas difficile (je pense que pour vous cela ne prendra pas plus de 5 minutes), pouvez-vous attribuer le manque de couleur dans cet exemple ? J'ai joint une photo des lignes qui devraient manquer.


#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:

Je n'arrive pas à comprendre le manque de couleur dans le zigzag coloré. Si ce n'est pas difficile (je pense que pour vous cela ne prendra pas plus de 5 minutes), pouvez-vous attribuer le manque de couleur dans cet exemple ? Ci-joint une photo des lignes qui devraient manquer.


1.

#property indicator_color1  clrRed,clrNone

2.

Color_ZigzagColors[i]=0;

La couleur sera rouge

Color_ZigzagColors[i]=1;

Il n'y aura pas de couleur.

Et la variable

int            color_sections;
est complètement superflu.
 
Alexey Viktorov:

1.

2.

La couleur sera rouge

Il n'y aura pas de couleur.

Et la variable

est complètement inutile.

Merci, mais je n'arrive pas à faire fonctionner cela au niveau des fonctions, que dois-je ajouter ou supprimer dans les fonctions pour faire disparaître ces lignes ? Comment puis-je implémenter clrNone ici ?

         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:

Merci, mais je n'arrive pas à faire en sorte que cela s'applique au niveau des fonctions, que dois-je ajouter ou supprimer dans les fonctions pour faire disparaître ces lignes ? Comment implémenter clrNone ici ?

Dans un endroit 0 dans un autre 1

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Ligne verticale.

Alexey Viktorov, 2018.10.12 17:29

Color_ZigzagColors[i]=0;

La couleur sera rouge

Color_ZigzagColors[i]=1;

Il n'y aura pas de couleur.

Et dans votre code, c'est la même chose dans deux cas

Color_ZigzagColors[i]=0;


 
Alexey Viktorov:

Dans un endroit 0 dans l'autre 1

Dans votre code, il est le même dans les deux cas


Voici ce qui va se passer (j'ai mis clrYellow au lieu de clrNone pour que ce soit plus clair). Au lieu des lignes de connexion (marquées par des croix bleues) disparaissent et la ligne verticale centrale (entourée en rouge). Je suppose donc qu'il y a déjà un problème au niveau de la fonction.


 
Nauris Zukas:

Voici ce qui se passe (j'ai remplacé clrNone par clrYellow pour que ce soit plus clair). La ligne verticale centrale (entourée en rouge) disparaît également à la place des lignes de connexion (entourées en bleu). Je suppose donc qu'il y a déjà un problème au niveau de la fonction.


Fournir le code et le dessin non pas à la main mais des lignes dessinées par l'indicateur. La possibilité de dessiner des sections verticales d'un zigzag est apparue assez récemment. Rashid Umarov a pris part à cette discussion et ce changement a été effectué sur sa suggestion. Si cette option est confirmée, nous inviterons Rashid.

 
Alexey Viktorov:

Fournir le code et le dessin non pas à la main mais des lignes dessinées par l'indicateur. La possibilité de dessiner des sections verticales du zigzag n'est apparue que récemment. Rashid Umarov a pris part à cette discussion et ce changement a été effectué sur sa suggestion. Si cette option est confirmée, nous inviterons Rashid.


Dossiers :
 
Nauris Zukas:


Intéressant, avec des lignes aussi épaisses, on dirait des lignes dessinées à la main...

@Rashid Umarov

Dans l'un des fils de discussion, vous avez participé à la discussion sur l'impossibilité de tracer une ligne verticale par DRAW_ZIGZAG. Un exemple est donné dans le post précédent. Après cette discussion, des modifications ont été apportées et la fonctionnalité a été ajoutée. Il y a maintenant un autre problème avec DRAW_COLOR_ZIGZAG, il est tout simplement impossible de définir la couleur de manière cohérente pour chaque segment. Peut-être existe-t-il un moyen de corriger cet inconvénient dans l'affichage graphique également ?

 
Alexey Viktorov:

Intéressant, avec des lignes aussi épaisses, on dirait des lignes dessinées à la main...

@Rashid Umarov

Dans l'un des fils de discussion, vous avez participé à la discussion sur l'impossibilité de tracer une ligne verticale par DRAW_ZIGZAG. Un exemple est donné dans le post précédent. Après cette discussion, des modifications ont été apportées et la fonctionnalité a été ajoutée. Il y a maintenant un autre problème avec DRAW_COLOR_ZIGZAG, il est tout simplement impossible de définir la couleur de manière cohérente pour chaque segment. Peut-être existe-t-il un moyen de corriger cet inconvénient dans l'affichage graphique également ?

Si c'est le cas, ce ne sera pas de sitôt. Elle sera quelque part à la centième place, comme une lointaine tâche non prioritaire.