A mudança do TF é um problema - página 7

 
Vasyl Nosal:

Gênio.

Você já tentou mudar para um par sem histórico e depois mudar para outro TF?

Sim, eu admito meu erro. O código mostra o que fazer se Fechar[i] > Fechar[i+1] e o que fazer se Fechar[i] < Fechar[i+1]. Mas não especifica o que fazer se Close[i] == Close[i+1]. Estas são as barras onde estas setas únicas estão caindo.

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 nStartBar = rates_total - MathMax(prev_calculated, 2);

   for(int i = nStartBar; i >= 0; i--)
   {
      if(Close[i] >= Close[i+1])
      {
         up_arr[i] = Low[i] - arrow_indent * _Point; //up arrow
         down_arr[i] = 0;
      }
         
      if(Close[i] < Close[i+1])
      {
         up_arr[i] = 0;
         down_arr[i] = High[i] + arrow_indent * _Point; //down arrow
      }
   }

   return(rates_total);
}
 
Karputov Vladimir:

Vamos fazer o seguinte: pegue o código 1.43 deste post e comente as linhas:

e veja o resultado ao rolar o gráfico para o verso da história e certificar-se de que a história está carregada.

Bem, eu fiz. Percebendo, no entanto, a inutilidade desta ação. :) O resultado é esperado - o indicador funciona sem problemas.
 
Vasyl Nosal:

Gênio.

Você já tentou mudar para um par sem histórico e depois mudar para outro TF?

O que você quer dizer com "sem história"?
 
Sergei Vladimirov:

Admito um erro. O código especifica o que fazer se Fechar[i] > Fechar[i+1], e o que fazer se Fechar[i] < Fechar[i+1]. Mas não especifica o que fazer se Close[i] == Close[i+1]. Estas são as barras onde estas setas únicas estão caindo.

Isso é bom.
 
Alexey Viktorov:
O que você quer dizer com "onde não há história"?
Onde o gráfico de um par de moedas não abre ou abre há muito tempo.
 
Sergei Vladimirov:

O QUE É ISTO?


É para que não haja "outs", se é que há alguma coisa.
 
Vasyl Nosal:
É para que não haja "outs", se é que há alguma coisa.
Quem são eles? ))
 
Sergei Vladimirov:
Quem são eles? ))
Fora de alcance
 
Vasyl Nosal:
Fora de alcance
Por que você precisa de uma margem tão grande, chegando a 20 barras? É por olho? )) No caso geral, você não pode ir além [rates_total-1], e neste código - além de [rates_total-2] porque a barra anterior é chamada no corpo do laço. Portanto, precisamos começar o cálculo a partir da barra [tarifas_total-2].
 
Sergei Vladimirov:
E por que tirar uma margem tão grande - 20 barras? É por olho? )) No caso geral, não podemos ir além [rates_total-1], e neste código - além de [rates_total-2] porque a barra anterior é chamada no corpo do laço. Portanto, precisamos começar o cálculo a partir da barra [tarifas_total-2].

Eu entendo. A próxima coisa será quantas barras no total a contar e quantas a recalcular.

Alguém entrará mais barras do que as que existem. Vai ser uma saída.

Sim, a olho nu.