Linea verticale. - pagina 2

 
Alexey Viktorov:

Devi decidere cosa vuoi...

Se si vuole misto, solo a volte per rimuovere le connessioni tra due sezioni verticali dello zigzag, è meglio prendere uno zigzag colorato e mettere, per condizione, nessun colore.

In effetti, potreste voler leggere l'intera sezione della documentazione sul tracciato grafico. Vi darà un'idea di quello che si può fare...

"Ho iniziato a fare un indicatore che disegnerà linee tra due punti in base al tempo e al prezzo...

Tutto è buono, ma a volte il tempo dei punti può essere in una candela..."

Colpa mia che ho usato la parola linea e non i segmenti di linea. Avrei dovuto inserire subito una foto.

Grazie, proverò lo zigzag colorato, penso che sarà più facile che fare un buffer extra per il segmento inclinato.
 
Alexey Viktorov:

Se hai bisogno di mescolare e abbinare, solo occasionalmente rimuovi i collegamenti tra le due sezioni verticali dello zigzag, è meglio prendere uno zigzag colorato e non assegnare alcun colore in alcuni punti, per convenzione.

Beh, non come ottenere la mancanza di colore in uno zigzag colorato. Se non è difficile (penso che per te non ci vorranno più di 5 minuti), puoi assegnare la mancanza di colore in questo esempio? Ho allegato una foto di quali linee dovrebbero mancare.


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

Non riesco a capire la mancanza di colore nello zigzag colorato. Se non è difficile (penso che per te non ci vorranno più di 5 minuti), puoi assegnare la mancanza di colore in questo esempio? In allegato una foto di quali linee dovrebbero mancare.


1.

#property indicator_color1  clrRed,clrNone

2.

Color_ZigzagColors[i]=0;

Il colore sarà rosso

Color_ZigzagColors[i]=1;

Non ci sarà nessun colore.

E la variabile

int            color_sections;
è completamente superfluo.
 
Alexey Viktorov:

1.

2.

Il colore sarà rosso

Non ci sarà nessun colore.

E la variabile

è completamente inutile.

Grazie, ma non riesco a farlo funzionare a livello di funzioni, cosa dovrei aggiungere o rimuovere nelle funzioni per far sparire queste linee? Come posso implementare clrNone qui?

         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:

Grazie, ma non riesco a farlo applicare a livello di funzione, cosa dovrei aggiungere o rimuovere nelle funzioni per far sparire queste linee? Come implementare clrNone qui?

In un posto 0 in un altro 1

Forum sul trading, sistemi di trading automatico e test di strategia

Linea verticale.

Alexey Viktorov, 2018.10.12 17:29

Color_ZigzagColors[i]=0;

Il colore sarà rosso

Color_ZigzagColors[i]=1;

Non ci sarà nessun colore.

E nel tuo codice è lo stesso in due casi

Color_ZigzagColors[i]=0;


 
Alexey Viktorov:

In un posto 0 nell'altro 1

Nel tuo codice è lo stesso in entrambi i casi


Ecco cosa succederà (ho messo clrYellow invece di clrNone per renderlo più chiaro). Al posto delle linee di collegamento (contrassegnate da croci blu) scompaiono e la linea verticale centrale (cerchiata in rosso). Presumo quindi che qualcosa sia già sbagliato a livello di funzione.


 
Nauris Zukas:

Questo è quello che succede (ho sostituito clrNone con clrYellow per renderlo più chiaro). La linea verticale centrale (cerchiata in rosso) scompare anche al posto delle linee di collegamento (cerchiate in blu). Presumo quindi che qualcosa sia già sbagliato a livello di funzione.


Fornire il codice e il disegno non a mano ma linee disegnate dall'indicatore. La capacità di disegnare sezioni verticali di uno zigzag è apparsa abbastanza recentemente. Rashid Umarov ha partecipato a quella discussione e questo cambiamento è stato fatto su suo suggerimento. Se questa opzione è confermata, inviteremo Rashid.

 
Alexey Viktorov:

Fornire il codice e il disegno non a mano ma linee disegnate dall'indicatore. La possibilità di disegnare sezioni verticali dello zigzag è apparsa solo recentemente. Rashid Umarov ha partecipato a quella discussione e questo cambiamento è stato fatto su suo suggerimento. Se questa opzione è confermata, inviteremo Rashid.


 
Nauris Zukas:


Interessante, con linee così spesse che sembrano disegnate a mano...

@Rashid Umarov

In uno dei thread hai partecipato alla discussione sull'impossibilità di disegnare una linea verticale con DRAW_ZIGZAG. Un esempio è nel post precedente. Dopo quella discussione, sono stati fatti dei cambiamenti e la funzione è stata aggiunta. Ora c'è un altro problema con DRAW_COLOR_ZIGZAG, è semplicemente impossibile impostare il colore in modo coerente per ogni segmento. Forse c'è un modo per risolvere questo inconveniente anche nella visualizzazione grafica?

 
Alexey Viktorov:

Interessante, con linee così spesse che sembrano disegnate a mano...

@Rashid Umarov

In uno dei thread hai partecipato alla discussione sull'impossibilità di disegnare una linea verticale con DRAW_ZIGZAG. Un esempio è nel post precedente. Dopo quella discussione, sono stati fatti dei cambiamenti e la funzione è stata aggiunta. Ora c'è un altro problema con DRAW_COLOR_ZIGZAG, è semplicemente impossibile impostare il colore in modo coerente per ogni segmento. Forse c'è un modo per risolvere questo inconveniente anche nella visualizzazione grafica?

Se c'è, non sarà presto. Sarà da qualche parte al centesimo posto come un compito lontano non prioritario.

Motivazione: