Erros, bugs, perguntas - página 2994

 
Alexandr Bryzgalov:

a referência não indica correctamente a ordem dos parâmetros.


Quais são as suas provas?

 
Vladimir Karputov:

Qual é a sua prova?

/

 
Vladimir Karputov:

Quais são as suas provas?

Não. Não há engano.

Fiquei confuso com a própria ordem. E o facto de não ser necessário 0. Quer sempre uma variável.


 
Alexandr Bryzgalov:

Não. Não há engano.

A própria ordem é confusa. E que não é preciso 0. Precisa necessariamente de uma variável.

É o que diz na ajuda - precisa de um VARIÁVEL

   int&           sub_window,   // The number of the subwindow 
 
Vladimir Karputov:

É o que diz na ficha informativa - VARIÁVEL é necessário

 

Amigos, ajudem-me aqui. Estou completamente perplexo com o que se está a passar.

#property indicator_chart_window
#property indicator_plots 0

int                      ma_handle;
bool FirstStart;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   if(ChartPeriod()!=PERIOD_M1)
     {
      ChartSetSymbolPeriod(0,_Symbol,PERIOD_M1);
     }
   ma_handle=iCustom(Symbol(),PERIOD_H1,"Indicator For Search Data");
   FirstStart = true;
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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[])
  {
   ulong tmpTimeCopy = GetMicrosecondCount();
   if(FirstStart)
     {
      double tmp[];
      datetime DateStart=D'2018.07.19', DateEnd=D'2021.01.19 23:59:59';
      int DataCopy=-1;
      while(true)
        {
         DataCopy=CopyBuffer(ma_handle,0,DateStart,DateEnd,tmp);
         if(DataCopy<0)
            Print("Return");
         else
           {
            IndicatorRelease(ma_handle);
            FirstStart=false;
           }
         if(!FirstStart)
            break;
        }
      Print("Time Copy Buffer: ", GetMicrosecondCount() - tmpTimeCopy);
      Print("Data to Copy: ", DataCopy, " ", tmp[0], " ", tmp[1], " ", tmp[2], " ", tmp[3], " ", tmp[4]);
      Print(datetime(tmp[0])," ",datetime(tmp[1])," ",datetime(tmp[ArraySize(tmp)-1]));

     }
   return(rates_total);
  }

Aqui está o indicador completo. Quando arranca, começa a dar

Imagem do ecrã

Porquê tanto optimismo. Se eu pressionar pausar ou parar, ainda recebo valores no separador Expert Advisor da janela Toolbox. A janela com o indicador já está fechada, mas os valores são exibidos com sucesso.

Como é que isto acontece? Quem pode explicar alguma coisa?

 
ROMAN KIVERIN:

Amigos, ajudem-me aqui. Estou completamente perplexo com o que se está a passar.

Aqui está o indicador completo. Quando arranca, começa a dar

Porquê tanto optimismo. Se eu pressionar pausar ou parar, ainda recebo valores no separador Expert Advisor da janela Toolbox. A janela com o indicador já está fechada, mas os valores são exibidos com sucesso.

Como é que isto acontece? Alguém pode explicar alguma coisa?

Quem disse que CopyBuffer() será bem sucedido pelo menos uma vez?

Quem disse que o iCustom() será bem sucedido?

"Os erros podem formar ciclos. O mais persistente destes é infinito". Teoria do erro.
 

Desde a última actualização, a funçãoEnumToString não funciona correctamente, dependendo do código a ser chamado. Uma chamada separada para oEnum_ não reproduz o erro.

template<typename T>

int Enum_(T enum_value)
  {
   ...
         s1=EnumToString(T(i1));

   ...

   }

Em depurador:

GetLastError regressa:

ERR_INVALID_PARAMETER.

4003

Parâmetro errado ao chamar uma função do sistema

 

ajuda de cópia da revista mt4

sell 0.20 CL-MAY21 at 59.36 sl: 0.00 tp: 0.00 -> sl: 0.00 tp: 58.00
14:07:13.521 Trade: '50223437': order #5595882 sell 0.20 CL-MAY21 at 59.36 was modified -> sl: 0.00 tp: 58.00
15:56:34.215 Startup: MetaTrader 4 for Android
15:56:34.223 Startup: Copyright 2001-2021, MetaQuotes Software Corp.
15:56:34.223 Startup:
15:56:34.223 Startup: Device: samsung a41 (QP1A.190711.020.A415FXXU1BUC3) 10(REL) 29SDK
15:56:34.223 Startup: Kernel: 4.14.141-20194519
15:56:34.239 Terminal: Native library initialized. Version 400 Build 1334
15:56:34.259 Chat: initialization success
15:57:43.276 Terminal: Codepage for current language (ru_RU) is 'CP1251'
15:57:43.277 Terminal: Using 'windows-1251' for server strings
15:57:43.284 Terminal: Terminal instance created
15:57:43.641 Terminal: Connecting to PinedaIntl-Trader through 'Main'
15:57:43.793 Terminal: Connected to PinedaIntl-Trader through Main
15:57:43.993 Chat: connected to msg.mql5.com:443
15:57:44.088 Network: '50223437': login successfull [connection type: unknown]
15:58:02.749 GL: Texture size: 256x256
15:59:35.745 Trade: '50223437': modify order #5595882 sell 0.20 CL-MAY21 at 54.19 sl: 0.00 tp: 58.00 -> sl: 0.00 tp: 52.0015:59:36.073 Trade: '50223437': order #5595882

como é que isto aconteceu

 
JRandomTrader:

Quem disse que CopyBuffer() alguma vez terá sucesso?

Quem diz que o iCustom() será bem sucedido?

"Os erros podem formar ciclos. O mais persistente destes é infinito". Teoria do erro.

O interessante é que esta função é executada com sucesso. É executado e produz valores. Depois disso, o terminal só entra num estado incompreensível.

A função iCustom() também é executada com sucesso.