Errori, bug, domande - pagina 2994

 
Alexandr Bryzgalov:

il riferimento non indica correttamente l'ordine dei parametri.


Quali sono le sue prove?

 
Vladimir Karputov:

Qual è la sua prova?

/

 
Vladimir Karputov:

Quali sono le sue prove?

No. Non c'è nessun errore.

Ero confuso dall'ordine stesso. E il fatto che non prende 0. Ha sempre bisogno di una variabile.


 
Alexandr Bryzgalov:

No. Non c'è nessun errore.

L'ordine stesso è confuso. E che non prende 0. Ha necessariamente bisogno di una variabile.

Questo è quello che dice nell'aiuto - ha bisogno di una VARIABILE

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

Questo è quello che dice il foglio informativo - VARIABILE è necessario

 

Amici, aiutatemi. Sono completamente sconcertato da quello che sta succedendo.

#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);
  }

Ecco l'intero indicatore. Quando si avvia, inizia a dare

Screenshot

Perché tanto ottimismo. Se premo pausa o stop, ottengo ancora valori nella scheda Expert Advisor della finestra Toolbox. La finestra con l'indicatore è già chiusa, ma i valori vengono visualizzati con successo.

Come avviene questo? Chi può spiegare qualcosa?

 
ROMAN KIVERIN:

Amici, aiutatemi. Sono completamente sconcertato da quello che sta succedendo.

Ecco l'intero indicatore. Quando si avvia, inizia a dare

Perché tanto ottimismo. Se premo pausa o stop, ottengo ancora valori nella scheda Expert Advisor della finestra Toolbox. La finestra con l'indicatore è già chiusa, ma i valori vengono visualizzati con successo.

Come avviene questo? Qualcuno può spiegare qualcosa?

Chi ha detto che CopyBuffer() avrà successo almeno una volta?

Chi ha detto che iCustom() avrà successo?

"Gli errori possono formare dei cicli. Il più persistente di questi è l'infinito". Teoria dell'errore.
 

Dall'ultimo aggiornamento, la funzioneEnumToString non funziona correttamente a seconda del codice chiamato. Una chiamata separata aEnum_ non riproduce l'errore.

template<typename T>

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

   ...

   }

Nel debugger:

GetLastError restituisce:

ERR_INVALID_PARAMETER.

4003

Parametro errato quando si chiama una funzione di sistema

 

copia di aiuto dalla rivista 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

come è successo

 
JRandomTrader:

Chi dice che CopyBuffer() avrà mai successo?

Chi dice che iCustom() avrà successo?

"Gli errori possono formare dei cicli. Il più persistente di questi è l'infinito". Teoria dell'errore.

La cosa interessante è che questa funzione viene eseguita con successo. Viene eseguito e produce valori. Dopo di che, il terminale entra solo in uno stato incomprensibile.

Anche la funzione iCustom() viene eseguita con successo.

Motivazione: