Erreurs, bugs, questions - page 2127

 
les agents de test débordent le disque dur. Ce qu'il faut faire - ce qu'il faut configurer. Il y a 8 serveurs à 120gb chacun
 
MQL5 Cloud Europe 1     genetic pass  tested with error "wrong timeframe request in Open Prices mode in OnTick function (EURUSD,M1)" 


Bonjour à tous.

Quelqu'un a-t-il rencontré cette erreur lors de l'optimisation dans le nuage sur des prix ouverts uniquement ?


L'erreur n'est pas constante. C'est-à-dire qu'il se produit "très rarement" mais que lorsque j'exécute 10 000 résultats, il apparaît 50 fois.

Je ne change pas de TF pendant l'optimisation.

 
Vladislav Andruschenko:

L'erreur n'est pas constante. C'est-à-dire qu'il se produit "très rarement" mais que lorsque vous exécutez 10 000 résultats, il apparaît 50 fois.

Vous devez obtenir toutes les informations dont vous avez besoin de l'agent par le biais du cadre pour les analyser.

 
fxsaber:

Vous devez obtenir toutes les informations nécessaires de l'agent via un cadre d'analyse.

Cela se produit toujours à 19 %. J'ai trouvé un fil disant que c'est à cause de l'histoire.
Je vais l'essayer.
 

La séquence complète des événements OnTradeTransaction suit l'achèvement de l'OrderSend.

EA

void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest&, const MqlTradeResult& )
{ 
  static bool FirstRun = true;  
  static ulong StartTime;
  
  if (FirstRun)
  {
    StartTime = GetMicrosecondCount();
    
    FirstRun = false;
  }

  Print(EnumToString(Trans.type));
  Print((GetMicrosecondCount() - StartTime) / 1000);    
}

Envoyer manuellement un ordre de transaction.

Journal de bord

2018.02.14 09:41:46.671 '8854170': instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': accepted instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': deal #192088422 sell 1.00 EURUSD at 1.23673 done (based on order #208541700)
2018.02.14 09:41:46.853 '8854170': order #208541700 sell 1.00 / 1.00 EURUSD at 1.23673 done in 190.608 ms


Résultat du conseiller expert

2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_ADD
2018.02.14 09:41:46.853 0
2018.02.14 09:41:46.853 TRADE_TRANSACTION_DEAL_ADD
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_DELETE
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_HISTORY_ADD
2018.02.14 09:41:46.853 2
2018.02.14 09:41:46.853 TRADE_TRANSACTION_REQUEST
2018.02.14 09:41:46.853 2


Nous pouvons parfaitement voir à partir de la colonne de temps et des données numériques de l'EA que la durée d'exécution de l'ordre de transaction n'a aucun effet sur la séquence des événements OnTradeTransaction. Toute l'asynchronie part en vrille ! Ils ont réussi à tout gâcher. Construire 1755.

 

Le symbole a des chiffres == 3

avec beaucoup plus de chiffres affichés dans le journal

'18000903': failed modify order #896199 buy limit 0.01 BTCUSD at 616.00100 sl: 0.00000 tp: 0.00000 -> 616.00100, sl: 0.00000 tp: 616.10100 [Invalid request]
 
La colonne "Commentaire" est absente de la vue "Ordres et transactions" de l'historique des transactions.
 
Il ne s'agit pas d'un bug du terminal, mais de la plateforme MT5.
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, Bid);
  
//  OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask, 100, 0, 0);
}

Exécution sur MQ-Demo sur un symbole lent. Par exemple, EURHUF.

Le script ouvre une position BUY avec TP = Bid. C'est-à-dire que la position doit être fermée immédiatement. Mais le respect de la condition d'acceptation du TP ne sera vérifié que lors du prochain tick !

La position ne sera pas fermée immédiatement avant le prochain tick. De plus, si le prochain tick a Bid < TP, le TP restera sans aucune acceptation.


Il en va de même pour les ordres à cours limité (ligne commentée). La situation est similaire dans le Testeur.

 
fxsaber:
Il ne s'agit pas d'un bug du Terminal, mais de la plateforme MT5.

Exécuter MQ-Demo sur un symbole lent. Par exemple, EURHUF.

Le script ouvre une position BUY avec TP = Bid. C'est-à-dire que la position doit être fermée immédiatement. Mais le respect de la condition d'acceptation du TP ne sera vérifié que lors du prochain tick !

La position ne sera pas fermée immédiatement avant le prochain tick. De plus, si le prochain tick a Bid < TP, le TP restera sans aucune acceptation.


Il en va de même pour les ordres à cours limité (ligne commentée). La situation est similaire dans le testeur de stratégie.

Veuillez joindre un code MQL5 propre aux questions sur MQL5.

J'en ai marre de voir votre publicité NASTY en permanence.
 
Vladimir Karputov:

Veuillez joindre du code MQL5 propre à vos questions MQL5.

Le bogue n'est pas lié à MQL5.