Erreurs, bugs, questions - page 805

 
ilunga:
Ainsi, il y a un code sur la page précédente où il y a un tableau de 3 éléments. Lorsque vous l'affichez avec Prints, vous obtenez que Bid = 1.29709 alors que bar_info[n-1] stocke 1.29220

Que pensez-vous de cela ?

//----------------------------------------------------------------------------//
//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:

Que pensez-vous de cela ?

Si cette opération est exécutée à partir d'un init, alors

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

Si à partir de OnTick, alors

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

J'ai un trou dans les données à ce stade (voir l'image). Pourtant, j'ai l'impression qu'en testant sur une autre paire, j'obtiendrai une mise à jour asynchrone des données.


 

Elle l'est.

Ajoutez une ligne supplémentaire après les empreintes:

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


En exécutant le code dans OnTick, nous obtenons :

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

C'est-à-dire que la barre pour Copy...() existe déjà, mais qu'elle ne contient pas encore de citation.



Nous pouvons faire un autre ajout. Insérez votre fonction avec mon ajout dans OnTick :

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

Test effectué à partir de 2012.01.01

on obtient :

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


C'est-à-dire que la première citation est un problème, les autres sont correctes.

 
ilunga:

Si cette opération est exécutée à partir d'un inite, alors

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

La dernière barre (la plus proche de la date actuelle) aura l'indice maximum dans ce cas.

 
ilunga:
Donc la première citation est un problème, les autres sont correctes.
Merci. (gloussements) Nous avons trouvé l'erreur, nous allons la corriger.
 

Pouvez-vous me dire ce que signifient les zéros avant la virgule dans la colonne Pass?


 
Mon deuxième chiffre a disparu, il n'y a plus que des zéros.
 
tol64:

Pouvez-vous me dire ce que signifient les zéros avant la virgule dans la colonne Pass?


Il s'agit du numéro de génération de la génétique. Non seulement il y a des zéros, mais après les zéros viennent 1, 2, etc.
 
marketeer:
Il s'agit du numéro de génération de la génétique. Il n'y a pas que des zéros, après les zéros viennent 1, 2 etc.

La mienne signifie-t-elle qu'il ne se reproduit pas ? )))

Les générations se succèdent, mais la colonne est toujours pleine de zéros.

 

Ces ajouts sont-ils possibles dans MT5 ?

Dans la structure MqlTradeResult, ajoutez l'heure d'exécution de l'ordre du côté du serveur.

Et ajoutez la possibilité de définir l'heure à laquelle un ordre en attente devient actif pour l'exécution sur le serveur.

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