Errori, bug, domande - pagina 805

 
ilunga:
Allora, c'è un codice nella pagina precedente dove c'è un array di 3 elementi. Quando lo emetti con Prints, ottieni che Bid = 1,29709 mentre bar_info[n-1] memorizza 1,29220

Cosa ne pensate di questo?

//----------------------------------------------------------------------------//
//Work variables
int ResCopy = -1; //Result of copying the data into an array

datetime bar_info[5];

bool Result = true; //Returned importance
//----------------------------------------------------------------------------//

ResetLastError();

//Checking the signal to stopping the trading system
  if(IsStopped()) return(false);
ZeroMemory(CheckResult);
//Copying the data into an array
ResCopy = CopyTime(symbol,period,0,ArraySize(bar_info),bar_info);

  if(ResCopy==-1)return(false); 
//
  for(int f=0;f<ResCopy;f++)
  {
  Print("f=",f,"-",TimeToString(bar_info[f]));
  }
//Checking for presence of the errors
  if(_LastError!=0){Result = false;}
 
Interesting:

Cosa ne pensi di questo?

Se questo viene eseguito da un init, allora

HS      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=0-2011.12.26 00:00
PD      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=1-2011.12.27 00:00
LN      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=2-2011.12.28 00:00
DG      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=3-2011.12.29 00:00
II      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=4-2011.12.30 00:00

Se da OnTick, allora

DJ      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=0-2011.12.27 00:00
JL      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=1-2011.12.28 00:00
PE      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=2-2011.12.29 00:00
OO      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=3-2011.12.30 00:00
FP      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=4-2012.01.02 00:00

A questo punto ho una lacuna nei dati (vedi immagine). Tuttavia, ho la sensazione che quando faccio i test su un'altra coppia, ottengo l'aggiornamento asincrono dei dati


 

Lo è.

Aggiungete un'altra riga dopo le stampe:

Print("Время последней котировки:" + TimeToString(SymbolInfoInteger("EURUSD", SYMBOL_TIME)));


Quando si esegue il codice in OnTick si ottiene:

RK      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=0-2011.12.27 00:00
LR      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=1-2011.12.28 00:00
FD      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=2-2011.12.29 00:00
EO      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=3-2011.12.30 00:00
PQ      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=4-2012.01.02 00:00
OI      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   Время последней котировки:2011.12.30 20:59

Cioè, la barra per Copy...() esiste già, ma non c'è ancora nessuna citazione.



Possiamo fare un'altra aggiunta. Inserisci la tua funzione con la mia aggiunta in OnTick:

if (TimeCurrent() < D'2012.01.10 15:00') return;

Test eseguito dal 2012.01.01

otteniamo:

RO      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=0-2012.01.04 00:00
JQ      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=1-2012.01.05 00:00
RH      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=2-2012.01.06 00:00
LR      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=3-2012.01.09 00:00
QE      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=4-2012.01.10 00:00
ON      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   Время последней котировки:2011.12.30 20:59
LS      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=0-2012.01.04 00:00
DE      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=1-2012.01.05 00:00
LL      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=2-2012.01.06 00:00
RF      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=3-2012.01.09 00:00
KI      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=4-2012.01.10 00:00
FR      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   Время последней котировки:2012.01.10 15:00
FG      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=0-2012.01.04 00:00
NN      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=1-2012.01.05 00:00
FP      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=2-2012.01.06 00:00
HK      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=3-2012.01.09 00:00
EM      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=4-2012.01.10 00:00
LE      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   Время последней котировки:2012.01.10 15:00


Cioè, la prima citazione è glitchata, il resto è corretto

 
ilunga:

Se questo viene eseguito da un inite, allora

HS      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=0-2011.12.26 00:00
PD      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=1-2011.12.27 00:00
LN      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=2-2011.12.28 00:00
DG      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=3-2011.12.29 00:00
II      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=4-2011.12.30 00:00

L'ultima barra (la più vicina alla data corrente) avrà l'indice massimo in questo caso.

 
ilunga:
Quindi la prima citazione è glitchata, le altre sono corrette.
Grazie. Abbiamo trovato l'errore, lo sistemeremo.
 

Puoi dirmi cosa significano gli zeri prima della virgola nella colonna Pass?


 
La mia seconda cifra non c'è più, solo zeri.
 
tol64:

Puoi dirmi cosa significano gli zeri prima della virgola nella colonna Pass?


Questo è il numero di generazione della genetica. Non solo ci sono zeri, ma dopo gli zeri vengono 1, 2 ecc.
 
marketeer:
Questo è il numero di generazione della genetica. Non ci sono solo zeri, dopo gli zeri vengono 1, 2 ecc.

Il mio significa che non si sta riproducendo? )))

Le generazioni stanno arrivando, ma la colonna è ancora piena di zeri.

 

Queste aggiunte sono possibili in MT5?

Nella struct MqlTradeResult aggiungere il tempo di esecuzione dell'ordine sul lato server.

E aggiungere la possibilità di impostare il tempo in cui un ordine in sospeso diventa attivo per l'esecuzione sul server.

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5