Discussion de l'article "MQL5 Cookbook : Comment éviter les erreurs lors de la définition/modification des niveaux de trade" - page 2

 
tatankaska:
Bonjour, en testant votre expert advisor dans le testeur de stratégie sur GOLD, j'ai toujours obtenu les messages Failed to open position - Invalid stops - aucune position n'a été ouverte. Qu'est-ce qui ne va pas ? Il a été écrit pour éviter ce type d'erreur ?
Je crains que nous ayons besoin d'un peu de code pour vous aider. La chose la plus probable est que l'erreur existe dans votre code. Vérifiez que vos stops sont plus grands que la distance minimale autorisée et que vous n'avez pas, par hasard, mal placé les stops d'achat et de vente. Assurez-vous également que votre courtier autorise la spécification de stops à l'ouverture de la position - certains d'entre eux exigent d'ajouter des stops uniquement aux positions existantes (ce que l'on appelle "l'exécution du marché").
 
marketeer:
Je crains que nous n'ayons besoin d'un peu de code pour vous aider. La chose la plus probable est que l'erreur existe dans votre code. Vérifiez que vos stops sont plus grands que la distance minimale autorisée et que vous n'avez pas, par hasard, mal placé les stops d'achat et de vente. Assurez-vous également que votre courtier autorise la spécification de stops à l'ouverture de la position - certains d'entre eux exigent d'ajouter des stops uniquement aux positions existantes (ce que l'on appelle "l'exécution du marché").

Bonjour, je n'ai testé que le conseiller expert joint à l'article Comment éviter les erreurs lors de la définition/modification du niveau de transaction, sans aucun changement (Positionpropertiesplus). Plateforme Instatrader par Instaforex. Les fonctions de ce conseiller sont écrites de telle sorte que si je définis des paramètres de stop erronés, ils sont fixés au niveau le plus bas autorisé. Normalement, je n'obtiens pas de message d'erreur - c'est le cas pour les paires de devises. Mais avec GOLD sur cette plateforme, j'obtiens à chaque tentative d'EA positionpropertiesplus d'ouvrir une position avec des stops, le message d'erreur "stops invalides" et aucune position n'a été ouverte dans le testeur de stratégie. Est-ce que c'est le cas que vous avez mentionné - problème avec la plateforme instatrader et le courtier ? Dans les propriétés du symbole GOLD, il est écrit exécution instantanée.

Voici un exemple de la fonction de calcul du stoploss de l'EA mentionné - j'ai utilisé l'EA joint à l'article mentionné sans aucun changement, j'ai seulement utilisé l'or au lieu des paires de forex :

//+------------------------------------------------------------------+

//| Calcul de la valeur du Stop Loss|

//+------------------------------------------------------------------+

double CalculateStopLoss(ENUM_ORDER_TYPE order_type)

  {

//--- Si l'option Stop Loss est requise

   if(StopLoss>0)

     {

      //--- Pour la valeur calculée de l'excédent de perte

      double sl=0.0;

      //--- Si vous devez calculer la valeur d'une position d'achat (BUY)

      if(order_type==ORDER_TYPE_BUY)

        {

         // Calculer le niveau

         sl=NormalizeDouble(sym_ask-CorrectValueBySymbolDigits(StopLoss*sym_point),sym_digits);

         //--- Renvoyer la valeur calculée si elle est inférieure à la limite inférieure du niveau Stops

         // Si la valeur est supérieure ou égale, renvoyer la valeur ajustée

         return(sl<sym_down_level ? sl : sym_down_level-sym_offset);

        }

      //--- Si vous devez calculer la valeur d'une position de VENTE

      if(order_type==ORDER_TYPE_SELL)

        {

         //--- Calculer le niveau

         sl=NormalizeDouble(sym_bid+CorrectValueBySymbolDigits(StopLoss*sym_point),sym_digits);

         //--- Renvoyer la valeur calculée si elle est supérieure à la limite supérieure du niveau Stops

         // Si la valeur est inférieure ou égale, renvoyer la valeur ajustée

         return(sl>sym_up_level ? sl : sym_up_level+sym_offset);

        }

     }

//---

   return(0.0);

  } 
 
tatankaska:
...

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading


Bonjour,

Veuillez utiliser le bouton SRC lorsque vous postez du code. Je vous remercie.


Cette fois, je l'ai édité pour vous.


 
tatankaska:

Bonjour, je n'ai testé que le conseiller expert joint à l'article Comment éviter les erreurs lors de la définition/modification du niveau de transaction, sans aucun changement (Positionpropertiesplus). Plateforme Instatrader par Instaforex. Les fonctions de ce conseiller sont écrites de telle sorte que si je définis des paramètres de stop erronés, ils sont fixés au niveau le plus bas autorisé. Normalement, je n'obtiens pas de message d'erreur - c'est le cas pour les paires de devises. Mais avec GOLD sur cette plateforme, j'obtiens à chaque tentative d'EA positionpropertiesplus d'ouvrir une position avec des stops, le message d'erreur "stops invalides" et aucune position n'a été ouverte dans le testeur de stratégie. Est-ce que c'est le cas que vous avez mentionné - problème avec la plateforme instatrader et le courtier ? Dans les propriétés du symbole GOLD, il est écrit exécution instantanée.

Voici un exemple de la fonction de calcul du stoploss de l'EA mentionné - j'ai utilisé l'EA joint à l'article mentionné sans aucun changement, j'ai seulement utilisé l'or au lieu des paires de forex :

Oui, c'était le cas. Avec GOLD dans Instatrader, les stops ne pouvaient être placés qu'après l'ouverture de la position. Quand la position était ouverte sans stops et après l'ouverture modifiée, tout était OK. Merci les gars.
 

Encore une fois, en ce qui concerne le calcul des stops (SL/TP) dans l'EA ci-joint, ils ne sont calculés correctement que pour les instruments dont le point de symbole = la taille du tick du symbole. Ce n'est pas le cas pour GOLD.

Les stops doivent être dans ce cas (par GOLD) corrigés à une taille de symbole valide, sinon vous obtenez un message d'erreur - stops invalides.

Les messages d'erreur de GOLD ne sont donc pas le résultat de l'exécution du marché. EA a besoin d'une légère correction dans le calcul des SL/TP, si vous voulez l'utiliser avec GOLD.

 
Qu'en est-il de la fermeture d'une position? S'il existe des conditions (signal) pour fermer des positions dans le Conseiller Expert, comment le faire, où puis-je voir de tels exemples ?
 
Nauris:
Qu'en est-il de la fermeture d'une position? S'il existe des conditions (signal) pour fermer des positions dans le conseiller expert, comment procéder, où puis-je trouver de tels exemples ?
La classe CTrade de la bibliothèque standard est utilisée dans l'article. Elle possède la méthode PositionClose. Vous pouvez l'utiliser.
 
Je modifie le code suivant

//+------------------------------------------------------------------+
//| Mise en place du panneau d'information|
//|------------------------------------------------------------------+
void SetInfoPanel()
  {
//--- Modes de visualisation ou en temps réel
   if(ShowInfoPanel && (IsVisualMode() || IsRealtime()))
     {
     // Le reste du code de la fonction SetInfoPanel()
     // ...
     }
  }