Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1490

 
Alexey Viktorov:
Onde está escrito que não pode haver um sub-carregamento de história junto com o novo bar?

Onde está escrito que a história deve ser rastreada?
Enquanto estiver carregando, os cálculos do indicador podem ser desconsiderados - porque não há um histórico completo (as barras podem aparecer em qualquer lugar).
Portanto, a conclusão - somente depois que todas as barras tiverem sido construídas é que poderá haver uma nova barra.
Caso contrário, todas as barras são "velhas".

 
m-r LSV:

Não ajudou :(

mostrar o código.

 
Taras Slobodyanik:

você precisa ver o que você construiu.

Taras!!! O homem está perguntando sobre a MQL5!!! E o MT5 é indexado da esquerda para a direita... Acontece que você não deve contar 1 barra, mas taxas_total-2

 
Taras Slobodyanik:

Onde está escrito que você tem que monitorar o carregamento do histórico?
Enquanto está sendo carregado, os cálculos do indicador podem ser desconsiderados - porque não há um histórico completo.
Daí a conclusão - somente depois que todas as barras tiverem sido construídas é que poderá haver uma nova barra.
Caso contrário, todas as barras são "velhas".

Favor aconselhar como fazê-lo com a história.
A coisa é, está planejado, verificar algo sobre a história, é claro.
Tenho algumas observações e gostaria de usar amortecedores para flechas.

Mas isso virá mais tarde.

 
Taras Slobodyanik:

mostrar o código.

//+------------------------------------------------------------------+
//|                                                    test.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window

#property indicator_buffers 2
#property indicator_plots   2

#property indicator_label1  "Signal UP"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrLime
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2

#property indicator_label2  "Signal DN"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  2

double up[];
double dn[];

datetime fin=0, last=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
    IndicatorSetString(INDICATOR_SHORTNAME, "Prototype");
    
   SetIndexBuffer(0,up,INDICATOR_DATA);
   PlotIndexSetInteger(0,PLOT_ARROW,233);
    
   SetIndexBuffer(1,dn,INDICATOR_DATA);
   PlotIndexSetInteger(1,PLOT_ARROW,234);
   
   
  
   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[])
   {
   fin=iTime(Symbol(), PERIOD_M1 ,0);
   if(last==fin) return(rates_total);
   last=fin;
   
   if(rates_total - prev_calculated == 1)
      {
      //Print("Новый бар");
      if(open[1] > close[1])
           {
           Print("Dn");
           }
      else if(open[1] < close[1])
           {
           Print("Up");
           }
      }

return(rates_total);
}
 
Alexey Viktorov:

Taras!!! O homem está perguntando sobre a MQL5!!! Na MT5, a indexação é da esquerda para a direita... Acontece que as taxas_total-2, e não 1 barra, devem ser contadas.

Não, não, pré_calculados e tarifas_total não dependem disso.

 
Taras Slobodyanik:

não-não, pré_calculados e tarifas_total não dependem disso

Qual é a relação entre o pré_cálculo e a taxa_total com o fato de que você se propõe a ler a abertura e o fechamento da primeira barra à esquerda?

 
Alexey Viktorov:

Qual é a relação entre o pré_cálculo e a taxa_total com o fato de você propor a leitura da abertura e fechamento da primeira barra à esquerda?

não estou sugerindo a leitura da barra de fechamento à esquerda, este não é o meu código)

somente meu

if(rates_total - prev_calculated == 1)
 
m-r LSV:

Não ajudou :(

Sim, ou você precisa mudar a direção das matrizes ou tomar o índice de taxas_total-2 em vez de 1

{
   
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(close,true);
   ArraySetAsSeries(time,true);
   
   if(rates_total - prev_calculated > 1)
      {
      Print("Загрузка истории");
      return(rates_total);
      }
   
   if(rates_total - prev_calculated == 1)
      {
      //Print("Новый бар");
      if(open[1] > close[1])
           {
           Print("Dn");
           }
      else if(open[1] < close[1])
           {
           Print("Up");
           }
      }

return(rates_total);
}


 
Taras Slobodyanik:

Não estou sugerindo a leitura da barra à esquerda, esse não é o meu código)

É apenas meu.

É indecoroso mentir tão descaradamente. Você apaga seu posto e culpa seu analfabetismo a outra pessoa. Mentiroso.

Razão: