Como obter parâmetros Abertos, Baixos, Altos, Fechados em MQL5? - página 10

 
//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   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 q = rates_total;
   static datetime w = 0;
   
   if(w != time[q-1])
    { 
     w = time[q-1];
     Print("-------------------------------------------------------------------------------");
     Print("  time[q-1]  ",time[q-1],"  time[q-2]  ",time[q-2],"  time[q-3]  ",time[q-3],"  time[q-4]  ",time[q-4],"  time[q-5]  ",time[q-5]);
     Print("  open[q-1]  ",open[q-1],"  open[q-2]  ",open[q-2],"  open[q-3]  ",open[q-3],"  open[q-4]  ",open[q-4],"  open[q-5]  ",open[q-5]);
     Print("  high[q-1]  ",high[q-1],"  high[q-2]  ",high[q-2],"  high[q-3]  ",high[q-3],"  high[q-4]  ",high[q-4],"  high[q-5]  ",high[q-5]);
     Print("  low[q-1]  ",low[q-1],"  low[q-2]  ",low[q-2],"  low[q-3]  ",low[q-3],"  low[q-4]  ",low[q-4],"  low[q-5]  ",low[q-5]);
     Print("  close[q-1]  ",close[q-1],"  close[q-2]  ",close[q-2],"  close[q-3]  ",close[q-3],"  close[q-4]  ",close[q-4],"  close[q-5]  ",close[q-5]);
    }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Por que uma barra com índice [taxas_total - 1] sempre tem todos os valores abertos, fechados, altos e baixos iguais? O índice aberto[rates_total - 1] não corresponde ao índice 1 nas séries temporais? Ou seja, é o mesmo que Abrir[1], Fechar[1],... em MT4.

Embora, talvez o índice [taxas_total - 1] corresponda ao índice 0 em séries temporais? Então isso significa que [taxas_total - 1] é a barra atual e porque ainda não se formou, seus parâmetros OCHL são iguais?

 
Реter Konow:

Por que será que uma barra com índice [taxas_total - 1] sempre tem todos os valores abertos, fechados, altos, baixos iguais? O índice aberto[taxas_total - 1] não corresponde ao índice 1 nas séries temporais? Ou seja, é o mesmo que Abrir[1], Fechar[1],... em MT4.

Embora, talvez o índice [taxas_total - 1] corresponda ao índice 0 nas séries temporais? Então isso significa que [taxas_total - 1] é a barra atual e porque ainda não se formou, seus parâmetros OCHL são iguais?

Por padrão, os indicadores MQL5 têm a seguinte indexação (pelo exemplo de "0" e "rates_total-1")

/*
   time[0]              -> D'2018.01.02 00:00:00'
   time[rates_total-1]  -> D'2018.12.31 22:00:00'
*/

Como você pode ver, a barra mais à direita no gráfico tem o índice "rates_total-1". Mas o índice "0" corresponderá à barra mais à esquerda no gráfico.

 
Vladimir Karputov:

Por padrão, os indicadores MQL5 têm a seguinte indexação (usando "0" e "rates_total-1" como exemplos)

Como você pode ver, a barra mais à direita no gráfico tem o índice "rates_total-1". O índice "0" corresponderá à barra mais à esquerda no gráfico.

O que está à direita é o atual? Aquele que não se formou?

Em geral, como eu o entendo, as taxas_total-1 apontam para a barra atual, e como ela não se formou, seus parâmetros OHCL nos timers são iguais.

 
Реter Konow:
O mais à direita - esse é o mais atual? Aquele que não se formou?

Veja qualquer gráfico - a barra mais à direita no GUIA é a barra atual, que está em processo de formação (ou seja, todos os seus preços e volume podem ser alterados a qualquer momento).

 
Vladimir Karputov:

Veja qualquer gráfico - a barra mais à direita no GUIA é a barra atual, que está em processo de formação (ou seja, todos os seus preços e volume podem ser alterados a qualquer momento).

Sim, eu entendo isso. Só não percebi que ele tem todos os valores nas séries temporais iguais antes de obter um índice de 1. Ou seja, deixa de ser atual.
 
Реter Konow:
Sim, eu entendo isso. Fiquei surpreso por ter todos os valores iguais antes de obter o índice 1 nas séries de tempo. Ou seja, deixa de ser atual.

O que é o outro índice? A barra mais à direita no gráfico nos indicadores MQL5 tem um índice de "taxas_total-1".

 
Vladimir Karputov:

O que é o outro índice? A barra mais à direita no gráfico nos indicadores MQL5 tem um índice de "taxas_total-1".

Você não entende do que estou falando. rates_total-1 é a barra atual. Eu sei disso. MAS. OS VALORES OCRES NAS SÉRIES TEMPORAIS SÃO IGUAIS. Verifique o código que eu afixei. Isso é exatamente o que eu não sabia.
 
Реter Konow:
Você não entende do que estou falando. tarifas_total-1 ESTA É a barra atual. Eu sei disso. MAS. OS VALORES OCRES NAS SÉRIES TEMPORAIS SÃO IGUAIS. Verifique o código que eu afixei. Isso é exatamente o que eu não sabia.
Seu código só aceita os valores no momento em que a barra é aberta
 
Реter Konow:
Você não entende do que estou falando. tarifas_total-1 ESTA é a barra atual. Eu sei disso. MAS. OS VALORES OCRES NAS SÉRIES TEMPORAIS SÃO IGUAIS. Verifique o código que eu afixei. Isso é exatamente o que eu não sabia.

A barra atual (a mais à direita no gráfico) terá preços EQUAL no momento em que a barra nascer - este é o básico: a barra acabou de nascer e todos os preços são os mesmos. Com a chegada de novos tiquetaques, os preços da barra atual (a barra mais à direita no gráfico) começarão a mudar.


Espero que esteja claro? No momento do nascimento do bar e sua OHLC são iguais.

 
Andrey Barinov:
Seu código só aceita valores quando a barra abre

Ai, apressado, o próprio homem deveria ter percebido que ...

Razão: