Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
UPD : Rashid a posté un fichier de bibliothèque ci-dessus, qui a résolu mon problème. C'est triste que la bibliothèque standard ait une erreur. Je vais maintenant étudier la comparaison pour voir s'il est possible de faire quelques changements directement dans EA sans remplacer la bibliothèque, de sorte que tout fonctionne
Ces modifications sont déjà dans la bibliothèque standard. J'ai décidé de répondre à ceux qui ne liront l'article que maintenant.
Bien, une belle en effet...
Bonjour à tous !
Je continue à étudier le langage de programmation MQL5. J'ai parcouru la quasi-totalité du site à la recherche d'informations qui me soient utiles. La plupart des informations trouvées sur le site sont destinées à des personnes qui ont déjà des connaissances de base en programmation.
Et voici ! J'ai encore trouvé un excellent article, qui m'a aidé à comprendre beaucoup de choses et à affiner mon EA ! Dommage que l'auteur n'ait pas continué à écrire cette série d'articles et se soit limité à 2012. Mais tout de même, j'exprime un GRAND respect à cet homme et lui dis le même GRAND MERCI au nom de tous les débutants !
Avec tout mon respect, Vladimir.
Bonjour, Merci pour cet article très utile et aidez-moi à résoudre ce problème. Je suis nouveau sur MT5 et j'apprends à créer des EAs. J'ai donc copié le code d'exemple pour exécuter Ctrade.Buy mais le backtest a échoué. Voici plus d'informations :
1) Compte : Il s'agit d'un compte réel dont la devise de base est le NZD.
2) Paramètres MetaEditor pour le backtest :
3) Code : Copié depuis https://www.mql5.com/fr/articles/481 :
//+------------------------------------------------------------------+
//| demo.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include<Trade\Trade.mqh>
//--- object for performing trade operations
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- set MagicNumber for your orders identification
int MagicNumber=123456;
trade.SetExpertMagicNumber(MagicNumber);
//--- set available slippage in points when buying/selling
int deviation=10;
trade.SetDeviationInPoints(deviation);
//--- order execution mode
trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own
trade.LogLevel(1);
//--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()
trade.SetAsyncMode(true);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
BuySample1();
}
//--- Buy sample
//+------------------------------------------------------------------+
//| Buying a specified volume at the current symbol |
//+------------------------------------------------------------------+
void BuySample1()
{
//--- 1. example of buying at the current symbol
if(!trade.Buy(0.1))
{
//--- failure message
Print("Buy() method failed. Return code=",trade.ResultRetcode(),
". Code description: ",trade.ResultRetcodeDescription());
}
else
{
Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
//---
}
4) Journal d'erreurs (Veuillez noter que je ne teste que sur EUR/USD) :
GJ 0 19:36:44.410 127.0.0.1 login (build 1730)
HH 0 19:36:44.420 Réseau 38520 octets d'informations de compte chargés
JO 0 19:36:44.420 Réseau 1482 octets de paramètres de test chargés
QE 0 19:36:44.420 Réseau 188 octets de paramètres d'entrée chargés
FR 0 19:36:44.421 Réseau 443 octets de liste de symboles chargés
IF 0 19:36:44.421 Fichier expert du testeur ajouté : Experts\demo.ex5. 46684 octets chargés
QH 0 19:36:44.433 Tester dépôt initial 10000.00 NZD, effet de levier 1:100
JN 0 19:36:44.437 Initialisation réussie du testeur
ES 0 19:36:44.437 Réseau 46 Kb de données d'initialisation totales reçues
PP 0 19:36:44.437 Testeur Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Symboles EURUSD : symbole à synchroniser
HR 0 19:36:44.800 Symboles EURUSD : symbole synchronisé, 3624 octets d'informations sur le symbole reçus
NJ 0 19:36:44.800 Historique EURUSD : synchronisation de l'historique démarrée
GO 0 19:36:44.856 Historique EURUSD : chargement de 27 octets de données d'historique à synchroniser dans 0:00:00.000
RQ 0 19:36:44.856 Historique EURUSD : synchronisation de l'historique de 2012.01.01 à 2017.11.15
EF 0 19:36:44.993 Historique EURUSD,Daily : le cache de l'historique est alloué pour 1010 barres et contient 312 barres de 2014.01.01 00:00 à 2014.12.31 00:00
ND 0 19:36:44.993 Historique EURUSD,Daily : l'historique commence à partir de 2014.01.01 00:00
OL 0 19:36:44.996 Tester EURUSD,Daily (HalifaxPlus-Live) : chaque tic généré
GN 0 19:36:44.996 Tester EURUSD,Daily : test de Experts\demo.ex5 de 2015.01.01 00:00 à 2017.11.15 00:00 commencé
CK 0 19:36:56.288 Symboles NZDUSD : symbole à synchroniser
IS 0 19:36:56.288 Symboles NZDUSD : symbole synchronisé, 3624 octets d'informations sur le symbole reçus
JL 0 19:36:56.288 History NZDUSD : synchronisation de l'historique démarrée
HJ 0 19:36:56.575 Historique NZDUSD : chargement de 14 Kb de données d'historique à synchroniser dans 0:00:00.078
LS 0 19:36:56.575 Historique NZDUSD : synchronisation de l'historique de 2013.01.01 à 2017.11.15
CO 0 19:36:56.579 Symboles EURNZD : symbole à synchroniser
OJ 0 19:36:56.580 Symboles EURNZD : symbole synchronisé, 3624 octets d'informations sur le symbole reçus
DL 0 19:36:56.580 Historique EURNZD : synchronisation de l'historique démarrée
MK 0 19:36:56.656 History EURNZD : load 27 bytes of history data to synchronize in 0:00:00.000
OD 0 19:36:56.656 Historique EURNZD : synchronisation de l'historique de 2013.01.01 à 2017.11.15
IN 0 19:36:56.665 Trade 2015.01.02 03:00:00 market buy 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 Trades 2015.01.02 03:00:00 deal #2 achat 0,10 EURUSD à 1,20549 effectué(basé sur l'ordre #2)
FH 0 19:36:56.666 Trades 2015.01.02 03:00:00 deal performed [#2 buy 0.10 EURUSD at 1.20549]
OG 0 19:36:56.666 Trade 2015.01.02 03:00:00 ordre exécuté achat 0.10 à 1.20549 [#2 achat 0.10 EURUSD à 1.20549]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 La méthode Buy() a été exécutée avec succès. Return code=10009 (fait à 1.20549)
NM 2 19:37:15.823 Historique NZDUSD 2016.09.21 23:01:00 : historique corrompu détecté (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 Historique NZDUSD 2016.09.21, mauvais conteneur détecté, doit être resynchronisé
LQ 2 19:37:16.106 Tester l'historique erreur 9 dans une fonction non définie
OH 2 19:37:16.106 Le testeur s'est arrêté à 0% de l'intervalle de test avec l'erreur '20 NZDUSD'.
Merci de me dire ce qui ne va pas et comment résoudre ce problème.
Bonjour, Merci pour cet article très utile et aidez-moi à résoudre ce problème. Je suis nouveau sur MT5 et j'apprends à créer des EAs. J'ai donc copié le code d'exemple pour exécuter Ctrade.Buy mais le backtest a échoué. Voici plus d'informations :
1) Compte : Il s'agit d'un compte réel dont la devise de base est le NZD.
2) Paramètres MetaEditor pour le backtest :
3) Code : Copié depuis https://www.mql5.com/fr/articles/481 :
//+------------------------------------------------------------------+
//| demo.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include<Trade\Trade.mqh>
//--- object for performing trade operations
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- set MagicNumber for your orders identification
int MagicNumber=123456;
trade.SetExpertMagicNumber(MagicNumber);
//--- set available slippage in points when buying/selling
int deviation=10;
trade.SetDeviationInPoints(deviation);
//--- order execution mode
trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own
trade.LogLevel(1);
//--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()
trade.SetAsyncMode(true);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
BuySample1();
}
//--- Buy sample
//+------------------------------------------------------------------+
//| Buying a specified volume at the current symbol |
//+------------------------------------------------------------------+
void BuySample1()
{
//--- 1. example of buying at the current symbol
if(!trade.Buy(0.1))
{
//--- failure message
Print("Buy() method failed. Return code=",trade.ResultRetcode(),
". Code description: ",trade.ResultRetcodeDescription());
}
else
{
Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
//---
}
4) Journal d'erreurs (Veuillez noter que je ne teste que sur EUR/USD) :
GJ 0 19:36:44.410 127.0.0.1 login (build 1730)
HH 0 19:36:44.420 Réseau 38520 octets d'informations de compte chargés
JO 0 19:36:44.420 Réseau 1482 octets de paramètres de test chargés
QE 0 19:36:44.420 Réseau 188 octets de paramètres d'entrée chargés
FR 0 19:36:44.421 Réseau 443 octets de liste de symboles chargés
IF 0 19:36:44.421 Fichier expert du testeur ajouté : Experts\demo.ex5. 46684 octets chargés
QH 0 19:36:44.433 Tester dépôt initial 10000.00 NZD, effet de levier 1:100
JN 0 19:36:44.437 Initialisation réussie du testeur
ES 0 19:36:44.437 Réseau 46 Kb de données d'initialisation totales reçues
PP 0 19:36:44.437 Testeur Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Symboles EURUSD : symbole à synchroniser
HR 0 19:36:44.800 Symboles EURUSD : symbole synchronisé, 3624 octets d'informations sur le symbole reçus
NJ 0 19:36:44.800 Historique EURUSD : synchronisation de l'historique démarrée
GO 0 19:36:44.856 Historique EURUSD : chargement de 27 octets de données d'historique à synchroniser dans 0:00:00.000
RQ 0 19:36:44.856 Historique EURUSD : synchronisation de l'historique de 2012.01.01 à 2017.11.15
EF 0 19:36:44.993 Historique EURUSD,Daily : le cache de l'historique est alloué pour 1010 barres et contient 312 barres de 2014.01.01 00:00 à 2014.12.31 00:00
ND 0 19:36:44.993 Historique EURUSD,Daily : l'historique commence à partir de 2014.01.01 00:00
OL 0 19:36:44.996 Tester EURUSD,Daily (HalifaxPlus-Live) : chaque tic généré
GN 0 19:36:44.996 Tester EURUSD,Daily : test de Experts\demo.ex5 de 2015.01.01 00:00 à 2017.11.15 00:00 commencé
CK 0 19:36:56.288 Symboles NZDUSD : symbole à synchroniser
IS 0 19:36:56.288 Symboles NZDUSD : symbole synchronisé, 3624 octets d'informations sur le symbole reçus
JL 0 19:36:56.288 History NZDUSD : synchronisation de l'historique démarrée
HJ 0 19:36:56.575 Historique NZDUSD : chargement de 14 Kb de données d'historique à synchroniser dans 0:00:00.078
LS 0 19:36:56.575 Historique NZDUSD : synchronisation de l'historique de 2013.01.01 à 2017.11.15
CO 0 19:36:56.579 Symboles EURNZD : symbole à synchroniser
OJ 0 19:36:56.580 Symboles EURNZD : symbole synchronisé, 3624 octets d'informations sur le symbole reçus
DL 0 19:36:56.580 Historique EURNZD : synchronisation de l'historique démarrée
MK 0 19:36:56.656 History EURNZD : load 27 bytes of history data to synchronize in 0:00:00.000
OD 0 19:36:56.656 Historique EURNZD : synchronisation de l'historique de 2013.01.01 à 2017.11.15
IN 0 19:36:56.665 Trade 2015.01.02 03:00:00 market buy 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 Trades 2015.01.02 03:00:00 deal #2 achat 0,10 EURUSD à 1,20549 effectué(basé sur l'ordre #2)
FH 0 19:36:56.666 Trades 2015.01.02 03:00:00 deal performed [#2 buy 0.10 EURUSD at 1.20549]
OG 0 19:36:56.666 Trade 2015.01.02 03:00:00 ordre exécuté achat 0.10 à 1.20549 [#2 achat 0.10 EURUSD à 1.20549]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 La méthode Buy() a été exécutée avec succès. Return code=10009 (fait à 1.20549)
NM 2 19:37:15.823 Historique NZDUSD 2016.09.21 23:01:00 : historique corrompu détecté (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 Historique NZDUSD 2016.09.21, mauvais conteneur détecté, doit être resynchronisé
LQ 2 19:37:16.106 Tester l'historique erreur 9 dans une fonction non définie
OH 2 19:37:16.106 Le testeur s'est arrêté à 0% de l'intervalle de test avec l'erreur '20 NZDUSD'.
Merci de me dire ce qui ne va pas et comment résoudre ce problème.
Dans l'article sur l'ouverture d'ordres limites et d'ordres stop partout dans le monde.
Je me demande si ceux qui écrivent que l'article les a aidés insèrent le code de l'article ?