L'EA que j'ai écrit il y a trois mois ne peut pas passer le test de stratégie maintenant, mais il fonctionnait bien il y a deux ou trois mois !

 
L'EA que j'ai écrit il y a trois mois ne peut plus passer le test maintenant, mais il fonctionnait bien sur le serveur MetaQuotes-Demo. Est-ce que quelqu'un a rencontré le même problème ? Le code d'erreur est toujours comme "failed instant sell 0.10 EURUSD at 1.38103 sl : 1.38253 tp : 1.38053 [Invalid request]" et "OrderSend failed with error #4756".ma version est 5.00 Build 540 . Aidez-moi, je suis complètement perdu.
-----------------------------------------------------------------------------------
if (condition1)
{
sell.action = TRADE_ACTION_DEAL ;
sell.type = ORDER_TYPE_SELL ;
sell.symbol = _Symbol ;
sell.deviation = 0 ;
sell.price = NormalizeDouble(mtick.bid,_Digits) ;
sell.volume = 0.1 ;
sell.tp = NormalizeDouble(sell.price - mtp*_Point,_Digits) ;
sell.sl = NormalizeDouble(sell.price + msl*_Point,_Digits) ;
sell.type_filling = ORDER_FILLING_AON;
si(OrderSend(sell,result_sell)==false)
{
Print("OrderSend a échoué avec l'erreur #",GetLastError()) ;
ResetLastError() ;
}
}
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

Essayez d'ajouter ZeroMemory(sell).

if (condition1)
{
ZeroMemory(sell);
sell.action = TRADE_ACTION_DEAL;
sell.type = ORDER_TYPE_SELL;
sell.symbol = _Symbol; 
Nous avons corrigé ce problème, attendez la prochaine version, s'il vous plaît.
 
Rosh:

Essayez d'ajouter ZeroMemory(sell).

Nous avons corrigé ce problème, attendez la prochaine version, s'il vous plaît.

Rosh, je viens de mettre à jour en .565 et j'ai eu le même message #4756.

ZeroMemory(struct) aide. Donc c'est corrigé ou pas encore ?

Merci

 
Rosh:

Essayez d'ajouter ZeroMemory(sell).

Nous avons corrigé ce problème, attendez la prochaine version, s'il vous plaît.

J'ai la même erreur bien que j'aie suivi la manière exacte de composer l'ordre. Comment cela se fait-il ? J'utilise le build 597.

2012.02.26 20:08:18 Core 1 2012.02.23 08:00:00 Alert : The Buy order request could not be completed -error:4756

2012.02.26 20:08:18 Core 1 2012.02.23 08:00:00 Échec de l'achat sur le marché de 0,10 EURUSD sl : 1.32438 tp : 1.33738 [Mode de remplissage non pris en charge].

if(Buy_Condition_3 && Buy_Condition_4)

{

// une position d'achat ouverte ?

if(Buy_opened)

{

Alert("Nous avons déjà une position d'achat !!!") ;

return ; // Ne pas ouvrir une nouvelle position d'achat.

}

ZeroMemory(mrequest) ;

mrequest.action = TRADE_ACTION_DEAL ; // exécution immédiate de l'ordre

mrequest.type = ORDER_TYPE_BUY ; // Ordre d'achat

mrequest.symbol = _Symbol ; // paire de devises

mrequest.deviation=0 ; // Déviation du prix actuel

mrequest.price = NormalizeDouble(latest_price.ask,_Digits) ; // Dernier prix demandé

mrequest.volume = Lot ; // nombre de lots à négocier

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits) ; // Prise de bénéfice (Take Profit)

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits) ; // Stop Loss

mrequest.type_filling = ORDER_FILLING_AON; // Type d'exécution de l'ordre

//--- envoyer l'ordre

OrderSend(mrequest,mresult) ;

// Obtenez le code de résultat

if(mresult.retcode==10009 || mresult.retcode==10008) //Requête terminée ou commande passée

{

Alert("Un ordre d'achat a été placé avec succès avec le Ticket# :",mresult.order," !!") ;

}

else

{

Alert("La demande d'ordre d'achat n'a pas pu être complétée -erreur :",GetLastError()) ;

ResetLastError() ;

retour ;

}

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

Je remarque que dans la référence MQL5 (dernière version qui vient d'être mise à jour aujourd'hui), il n'y a plus de ORDER_FILLING_AON, mais même si j'utilise ORDER_FILLING_FOK, je rencontre toujours l'erreur 4756. Veuillez me conseiller.

ENUM_ORDER_TYPE_FILLING

Identificateur

Description

ORDER_FILLING_FOK

L'opération peut être exécutée exclusivement avec un volume spécifié au prix égal ou supérieur au prix spécifié dans l'ordre. S'il n'y a pas de volume suffisant d'offres sur le symbole de l'ordre, l'ordre ne sera pas exécuté. Ce type de remplissage est utilisé dans les modes d'exécution SYMBOL_TRADE_EXECUTION_INSTANT ouSYMBOL_TRADE_EXECUTION_REQUEST.

ORDRE_REMPLISSAGE_IOC

Un accord pour exécuter la transaction avec le volume maximal du marché à un prix égal ou supérieur au prix spécifié dans l'ordre. Dans ce cas, un ordre supplémentaire pour le volume non rempli ne sera pas placé. Ce type de remplissage est utilisé dans les modes d'exécution SYMBOL_TRADE_EXECUTION_MARKET etSYMBOL_TRADE_EXECUTION_EXCHANGE selon les paramètres du symbole sur un serveur de négociation.

ORDRE_REMPLISSAGE_RETOUR

Un accord pour exécuter la transaction avec le volume maximal du marché à un prix égal ou supérieur au prix spécifié dans l'ordre. Dans ce cas, un ordre supplémentaire pour le volume non rempli sera placé. Ce type de remplissage est utilisé uniquement pour les ordres en attente (TRADE_ACTION_PENDING).

 
Bonjour, un commentaire avant d'abandonner MT5 et de revenir à MT4 ? Merci beaucoup ! Je suis en fait nouveau sur les deux, mais j'aimerais d'abord essayer MT5, même si je sais qu'il est très récent.
 
lingwuchung:
Bonjour, un commentaire avant d'abandonner MT5 et de revenir à MT4 ? Merci beaucoup ! Je suis en fait nouveau sur les deux, mais j'essaierais d'abord MT5, même si je sais qu'il est très récent.

Ajoutez ceci avant la demande de modification :

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 

J'ai eu exactement le même problème que vous et cela l'a réglé pour moi.

 

J'ai le même problème maintenant.

Mes conseillers experts fonctionnaient très bien. Mais maintenant, ils ne passent pas tous le testeur.

Lorsque je compile les fichiers, le message suivant s'affiche :

ORDER_FILLING_AON' - identifiant non déclaré.

Comment résoudre ce problème ?

Est-ce le résultat d'une mise à jour du terminal ? (Version 5.00 Build 642)

(24 avril 2012)

J'espère que quelqu'un pourra m'aider

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 
lamme.vandriel:

Lorsque je compile les fichiers, le message suivant s'affiche :

ORDER_FILLING_AON' - identifiant non déclaré.

Comment résoudre ce problème ?

Remplacer ORDER_FILLING_AON par ORDER_FILLING_FOK (voir les propriétés de l'ordre).

 
JohnnyDoe:

Ajoutez ceci avant la demande de modification :

J'ai eu exactement le même problème que vous et ça l'a réglé pour moi.

Bonjour, j'ai ajouté ces 2 lignes dans le code mais l'erreur 4756 est toujours présente (Trade request sending fail).

Pouvez-vous préciser où je dois ajouter ces 2 lignes ? Celle concernant mrequest est déjà présente. L'ajout des deux lignes ne change rien pour moi. Merci pour l'aide que vous m'apporterez.

J'utilise rel.5 build 842.

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 
 
Vivaldi:

Bonjour, J'ai ajouté ces 2 lignes dans le code mais l'erreur 4756 est toujours présente (Trade request sending fail).

Pouvez-vous préciser où je dois ajouter ces 2 lignes ? Celle concernant mrequest est déjà présente. L'ajout des deux lignes ne change rien pour moi. Merci pour l'aide que vous m'apporterez.

J'utilise rel.5 build 842.

Montrez votre code, afin que nous puissions vous dire où ajouter cette ligne.
Raison: