Erreurs, bugs, questions - page 819

 
abeiks:

Après-midi.

J'ai créé un bloc pour compter les battements sur les lignes d'enveloppes, il semble tout compter correctement, mais il y a quelques entrées manquantes dans le journal - par exemple il y a count[Number] =3 et le prochain count[Number] =5. Je peux voir que le comptage est correct mais le journal manque pour une raison quelconquecount [Number] =4. Parfois le journal contient toutes les entrées. Je ne comprends pas pourquoi ça arrive. Si vous voyez des erreurs dans le code, pouvez-vous corriger le code?

Il n'y a pas d'enregistrement dans le journal, ou seulement dans l'onglet "Experts" ? Je penche pour la seconde, car lors de la sortie sur la tabulation à grande vitesse, certaines lignes sont sautées. Ce n'est pas un bug, car cette sortie ralentit moins le programme. Mais dans le journal est imprimé toutes les lignes, il n'y a pas de sauts.

Vérifiez-le. Si vous constatez des lacunes dans le journal, dans ce cas, contactez le Service Desk.

De plus, il arrive que l'exécution du testeur génère une erreur " OnTick critical error ", mais la fois suivante, le test est lancé. Quel pourrait être le problème ?

C'est aux développeurs d'en décider.
 
MetaDriver :

N'y a-t-il aucune entrée dans le journal, ou seulement dans l'onglet "Experts" ? Je penche pour la seconde, car lors de la sortie vers l'onglet à grande vitesse, certaines lignes sont sautées. C'est une fonctionnalité, pas un bug, car cette sortie ralentit moins le programme. Mais toutes les lignes sont sorties dans le journal, il n'y a pas de sauts.

Vérifiez-le. Si vous constatez des lacunes dans le journal, dans ce cas, contactez le Service Desk.

C'est aux développeurs d'en décider.

Oui, vous avez raison, il s'avère que tout est dans le journal. Lors du test visuel, je regardais les journaux, donc je ne l'ai pas remarqué. Je ne savais pas qu'il existait une telle fonctionnalité. Merci !

Визуализируй стратегию в тестере MetaTrader 5
Визуализируй стратегию в тестере MetaTrader 5
  • 2012.06.08
  • MetaQuotes Software Corp.
  • www.mql5.com
Каждому из нас давно знакома поговорка "Лучше один раз увидеть, чем сто раз услышать". Вы можете прочитать десятки книг о Париже или Венеции, но мысленные образы не позволят вам испытать те же ощущения, как от прогулки по их вечерним улицам. Преимущество визуализации, или наглядного представления, может быть легко спроецировано на любой аспект нашей жизни, включая и работу на рынке, например, анализ цен на графиках при помощи индикаторов, и конечно же, визуализация тестирования стратегий. В данной статье собраны все возможности тестера стратегий MetaTrader 5 по визуализации вычислений.
 
abeiks:

Oui, vous avez raison, il s'avère que tout est là dans le journal. Je gardais un œil sur le journal pendant le test visuel, donc je n'ai pas remarqué. Je ne savais pas qu'il existait une telle fonctionnalité. Merci !

OK.

--

Pour sélectionner un texte en tant que citation, il suffit de le marquer et d'appuyer sur Ctrl+3 ; ou, lorsque vous répondez, utilisez le lien de réponse situé dans le coin inférieur droit du message.

 
Bonsoir ! Je n'arrive pas à ouvrir un mandat. J'ai essayé de tout écrire en suivant les explications et l'aide. J'aimerais comprendre ce qui ne va pas dans cet exemple !
//+------------------------------------------------------------------+
//|                                                     ордерній.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
double Ask=last_tick.ask;
double Bid=last_tick.bid;

   MqlTradeRequest request={0};
   MqlTradeResult result={0};
   
   request.action= TRADE_ACTION_DEAL;
   request.magic =600;
   request.symbol=Symbol();
   request.volume=1;
   request.sl=Bid-300*Point();
   request.tp=Bid+300*Point();
   request.type=ORDER_TYPE_BUY;
   OrderSend( request,   result    );    
        
  int Error=GetLastError( ) ; ResetLastError();
  printf("Error ",Error);

   
  }
//+------------------------------------------------------------------+
 
MetaDriver:

... Pour sélectionner un texte comme citation, il suffit de le marquer et d'appuyer sur Ctrl+3 ...

Merci, je n'avais pas réalisé que c'était si facile.
 
Dimka-novitsek:
Bonsoir, je ne peux pas ouvrir une commande. J'ai essayé d'écrire tout ce qui est expliqué dans l'article. Je voudrais savoir ce qui ne va pas dans cet exemple !

Essayez ceci

//+------------------------------------------------------------------+
//|                                                     ордерній.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
double Ask=last_tick.ask;
double Bid=last_tick.bid;

   MqlTradeRequest request={0};
   MqlTradeResult result={0};
   
   request.action= TRADE_ACTION_DEAL;
   request.magic =600;
   request.symbol=Symbol();
   request.price=Bid;
   request.deviation=20;
   request.volume=1;
   request.sl=Bid-300*Point();
   request.tp=Bid+300*Point();
   request.type=ORDER_TYPE_BUY;
   OrderSend( request,   result    );    
        
  int Error=GetLastError( ) ; ResetLastError();
  printf("Error %i",Error);

   
  }
//+------------------------------------------------------------------+

Il vous manque le prix d'ouverture et le slippage.

request.price=Bid;
request.deviation=20;

Vous pouvez également lire la structure de la demande de transaction(MqlTradeRequest).

 

Merci ! !! Je vais essayer. L'essentiel est de lire, l'essentiel est de comprendre ! !!

En fait, je pensais qu'il était tellement naturel d'acheter au prix existant qu'il n'était pas nécessaire de le préciser.

Quel est le mode si j'ouvre juste une pose ?

 
Non. Dans les messages, il écrit seulement Error et resultat, il n'écrit pas les valeurs de ces variables ! C'est l'endroit.
       
  int Error=GetLastError( ) ; ResetLastError();
  printf("Error ",Error);
  
  uint resultat= result.retcode ;
   printf("resultat ",resultat);
   
 
Dimka-novitsek:
Non. Dans les messages, il n'écrit que les variables Error et resultat, il n'écrit pas les valeurs de ces variables ! C'est l'endroit.

Et je vous ai donné ce code

int Error=GetLastError( ) ; ResetLastError();
printf("Error %i",Error);

Faites result.retcode par analogie.

 
fyords:

Et je vous ai donné ce code

Faites de même pour result.retcode.

Mes excuses ! Je pensais que la machine ne lisait pas du tout le texte cité, et que l'icône était un oubli insignifiant.