pas un seul conseiller ne fonctionne avec Metatrader 5 pour n'importe quelle paire de devises - page 7

 

Et voilà la cause :

10030

TRADE_RETCODE_INVALID_FILL

Type d'exécution de l'ordre de solde spécifié non supporté

Cela a déjà été mentionné :

 
Karputov Vladimir:

Et voilà la cause :

10030

TRADE_RETCODE_INVALID_FILL

Type d'exécution de l'ordre de solde spécifié non supporté

qui a déjà été mentionné :


comment faire pour que le type d'exécution soit ?ORDER_FILLING_RETURN
 
Donc correctORDER_FILLING_ il y a peut-être FOG à RETURN... J'ai essayé avec MT5 aussi - la moindre interférence dans le code pendant le trading et j'ai perdu 100$ dessus, les nouveaux codes ne fonctionnaient pas non plus sur la démo jusqu'à ce que j'ajoute certaines de mes fonctionnalités - peut-être que c'était conçu comme ça .... Je ne sais pas pourquoi... J'ai abandonné MT5 il y a longtemps, bien que j'aie commencé avec elle - elle semblait plus sûre et plus simple...
 
chipo:
Donc correctORDER_FILLING_ il y a peut-être FOG à RETURN... J'ai essayé avec MT5 aussi - la moindre interférence dans le code pendant le trading et j'ai perdu 100$ dessus, les nouveaux codes ne fonctionnaient pas non plus sur la démo jusqu'à ce que j'ajoute certaines de mes fonctionnalités - peut-être que c'était conçu comme ça .... Je ne sais pas pourquoi... J'ai abandonné MT5 il y a longtemps, même si j'avais commencé avec elle - elle semblait plus fiable et plus facile à utiliser...
Il n'y a pas de lignesORDER_FILLING-ORDER_FOK- FOK dans 1 Expert Advisor standard.
 
tous les EAs standards sont construits sur une bibliothèque standard, vous devez modifier la bibliothèque
 
Alexander Bereznyak:
toutes les EA standard sont construites sur la bibliothèque standard, la bibliothèque doit être corrigée

Il n'est pas nécessaire de modifier la bibliothèque standard - c'est la mauvaise approche. Vous devriez simplement enregistrer l'EA sous un nouveau nom et modifier un peu le code. Par exemple, enregistrez Moving Averages.mq5 sous un nouveau nom Moving Averages1.mq5.

Dans l'en-tête, ajoutez une description indiquant que cet EA utilise la politique d'exécution ORDER_FILLING_RETURN :

#property version   "1.00"
#property description "Политика исполнения: ORDER_FILLING_RETURN"
#include <Trade\Trade.mqh>

et ajouter une ligne de code dans les fonctions de fermeture et d'ouverture de la position:

//+------------------------------------------------------------------+
//| Check for open position conditions                               |
//+------------------------------------------------------------------+
void CheckForOpen(void)
  {
   .
   .
   .
//--- additional checking
   if(signal!=WRONG_VALUE)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
           }
//---
  }
//+------------------------------------------------------------------+
//| Check for close position conditions                              |
//+------------------------------------------------------------------+
void CheckForClose(void)
  {
   .
   .
   .
//--- additional checking
   if(signal)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionClose(_Symbol,3);
           }
//---
  }
 
Karputov Vladimir:

Il n'est pas nécessaire de modifier la bibliothèque standard - c'est la mauvaise approche. Vous devriez simplement enregistrer l'EA sous un nouveau nom et modifier un peu le code. Par exemple, enregistrez Moving Averages.mq5 sous un nouveau nom Moving Averages1.mq5.

Dans l'en-tête, ajoutez une description indiquant que cet EA utilise la politique d'exécution ORDER_FILLING_RETURN :

et ajouter une ligne de code pour fermer et ouvrir les positions:

Super ! Tout fonctionne. Merci pour votre travail et vos explications !
 
Le sujet ne sera-t-il pas supprimé ? Je pourrais en avoir besoin à l'avenir :)
Raison: