Linha vertical. - página 2

 
Alexey Viktorov:

Você tem que decidir o que quer...

Se você quiser misturar, apenas às vezes para remover as conexões entre duas seções verticais do ziguezague, é melhor pegar um ziguezague colorido e colocar, por condição, sem cor.

Na verdade, você pode querer ler toda a seção de documentação sobre a trama gráfica. Isso lhe dará uma idéia do que pode ser feito...

"Comecei a fazer um indicador que traçará linhas entre dois pontos por tempo e preço.

Tudo é bom, mas às vezes o tempo dos pontos pode estar em uma só vela"...

Minha culpa por usar a palavra linha ao invés de segmentos de linha. Eu deveria ter inserido uma foto imediatamente.

Obrigado, vou tentar o ziguezague colorido, acho que será mais fácil do que fazer um buffer extra para o segmento inclinado.
 
Alexey Viktorov:

Se você precisar misturar e combinar, só ocasionalmente remover as conexões entre as duas seções verticais do ziguezague, é melhor pegar um ziguezague colorido e não atribuir nenhuma cor nos lugares, por convenção.

Bem, não é assim que eu consigo a falta de cor em um ziguezague colorido. Se não for difícil (acho que para você não vai levar mais do que 5 minutos), você pode atribuir a falta de cor neste exemplo? Anexei uma foto das linhas que deveriam estar faltando.


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

Eu não consigo colocar a falta de cor no ziguezague colorido. Se não for difícil (acho que para você não vai levar mais do que 5 minutos), você pode atribuir a falta de cor neste exemplo? Anexou uma foto do que deveria faltar nas linhas.


1.

#property indicator_color1  clrRed,clrNone

2.

Color_ZigzagColors[i]=0;

A cor será vermelha

Color_ZigzagColors[i]=1;

Não haverá cor.

E a variável

int            color_sections;
é completamente supérfluo.
 
Alexey Viktorov:

1.

2.

A cor será vermelha

Não haverá cor.

E a variável

é completamente desnecessário.

Obrigado, mas não consigo que isto funcione no nível da função, o que devo acrescentar ou remover nas funções para fazer desaparecer estas linhas? Como implementar o clrNone aqui?

         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:

Obrigado, mas não consigo fazer com que isto se aplique em nível de função, o que devo acrescentar ou remover em funções lá para fazer desaparecer estas linhas? Como implementar o clrNone aqui?

Em um lugar 0 em outro 1

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Linha Vertical.

Alexey Viktorov, 2018.10.12 17:29

Color_ZigzagColors[i]=0;

A cor será vermelha

Color_ZigzagColors[i]=1;

Não haverá cor.

E em seu código é o mesmo em dois casos

Color_ZigzagColors[i]=0;


 
Alexey Viktorov:

Em um lugar 0 no outro 1

Em seu código é o mesmo em ambos os casos


Eis o que acontecerá (coloquei clrYellow em vez de clrNone para torná-lo mais claro). Em vez de linhas de conexão (marcadas com cruzes azuis) desaparecem e a linha vertical média (circulada em vermelho). Presumo, portanto, que algo já esteja errado no nível da função.


 
Nauris Zukas:

Isto é o que acontece (substituí clrNone por clrYellow para torná-lo mais claro). A linha vertical média (circulada em vermelho) também desaparece ao invés das linhas de conexão (circuladas em azul). Presumo, portanto, que algo já esteja errado no nível da função.


Forneça o código e desenho não à mão, mas linhas desenhadas pelo indicador. A capacidade de desenhar seções verticais de um ziguezague apareceu muito recentemente. Rashid Umarov participou dessa discussão e essa mudança foi feita por sugestão dele. Se esta opção for confirmada, convidaremos Rashid.

 
Alexey Viktorov:

Forneça o código e desenho não à mão, mas linhas desenhadas pelo indicador. A capacidade de desenhar seções verticais do ziguezague apareceu muito recentemente. Rashid Umarov participou dessa discussão e essa mudança foi feita por sugestão dele. Se esta opção for confirmada, convidaremos Rashid.


Arquivos anexados:
 
Nauris Zukas:


Interessante, com linhas tão grossas parece linhas desenhadas à mão.

@Rashid Umarov

Em uma das linhas você participou da discussão da impossibilidade de traçar uma linha vertical por DRAW_ZIGZAG. Um exemplo está no post anterior. Após essa discussão, foram feitas mudanças e a característica foi acrescentada. Agora há outro problema com DRAW_COLOR_ZIGZAG, é simplesmente impossível definir a cor de forma consistente para cada segmento. Talvez haja uma maneira de corrigir este inconveniente também no display gráfico.

 
Alexey Viktorov:

Interessante, com linhas tão grossas parece linhas desenhadas à mão.

@Rashid Umarov

Em uma das linhas você participou da discussão da impossibilidade de traçar uma linha vertical por DRAW_ZIGZAG. Um exemplo está no post anterior. Após essa discussão, foram feitas mudanças e a característica foi acrescentada. Agora há outro problema com DRAW_COLOR_ZIGZAG, é simplesmente impossível definir a cor de forma consistente para cada segmento. Talvez haja uma maneira de corrigir este inconveniente também no display gráfico.

Se houver, não será em breve. Será em algum lugar no centésimo lugar como uma tarefa não prioritária distante.

Razão: