Comment importer le bid/ask d'une autre paire de devises ? - page 2

 

Ok, j'ai lu la documentation de Market Info et je me suis rendu compte que vous ne pouvez extraire que les prix bid/ask. Comment puis-je essayer d'extraire les données de prix (HLOC) de disons 6 barres auparavant ?


Pour être honnête, j'ai passé beaucoup de temps à lire la documentation et elle n'est pas aussi utile que d'autres langages comme Python ou PRT, donc je cherchais juste quelques conseils.

Bien à vous,

 
Simone Gill:

Ok, j'ai lu la documentation de Market Info et j'ai réalisé que vous pouvez seulement extraire les prix d'achat et de vente. Comment puis-je essayer d'extraire les données de prix (HLOC) de disons 6 barres auparavant ?


Pour être honnête, j'ai passé beaucoup de temps à lire la documentation et elle n'est pas aussi utile que d'autres langages comme Python ou PRT, donc je cherchais juste quelques conseils.

Bien à vous,

Utilisez iOpen(), iClose(), iHigh() et/ou iLow().

 

Salut les pros,

Je me suis vraiment énervé en lisant ce sujet, désolé de l'évoquer. Mais comme j'ai eu le même problème, j'ai décidé de commenter ici.

Voici mon code :

double Ask2,Bid2;

----------------------------

void start()

{

Ask2=MarketInfo("GBPUSD",MODE_ASK);
Bid2=MarketInfo("GBPUSD",MODE_BID);
Comment(Ask2, Bid2);

}


Le commentaire montre 00

Pourquoi n'a-t-il pas pu importer l'offre et la demande d'un autre symbole ?


Tout conseil est apprécié,
Hossein

 
HosseinKOGO: Pourquoi n' a-t-il pas pu importer l'offre et la demande d'un autre symbole ?
Sur MT4 : A moins que le graphique actuel ne soit la paire/TF spécifique référencée, vous devez gérer les erreurs 4066/4073avant d'accéder aux prix.
Historique de téléchargement dans l'EA MQL4 - MQL4 et MetaTrader 4 - Forum de programmation MQL4

Sur MT5 : A moins que le graphique ne concerne cette paire/TF spécifique, vous devez synchroniser les données du terminal à partir du serveur.
Timeseries and Indicators Access / Data Access - Référence sur le langage de trading algorithmique/automatique pour MetaTrader 5
Synchroniser les données du serveur avec celles du terminal - Symboles - Général - Forum de programmation MQL5

 
William Roeder:
Sur MT4 : A moins que le graphique actuel ne soit la paire/TF spécifique référencée, vous devez gérer les erreurs 4066/4073avant d'accéder aux prix.
Historique de téléchargement dans l'EA MQL4 - MQL4 et MetaTrader 4 - Forum de programmation MQL4

Sur MT5 : A moins que le graphique ne concerne cette paire/TF spécifique, vous devez synchroniser les données du terminal à partir du serveur.
Timeseries and Indicators Access / Data Access - Référence sur le langage de trading algorithmique/automatique pour MetaTrader 5
Synchroniser les données du serveur avec celles du terminal - Symboles - Général - Forum de programmation MQL5

Je vous remercie pour votre aide.

J'utilise Tick Data Suite de eareview.net et j'ai téléchargé l'historique de mes paires cibles, y compris GBPUSD, avant de procéder au backtesting. De plus, Journal ne me donne pas d'erreur. S'agit-il d'un problème d'intégration ? Dois-je chercher une solution en contactant le support Tick Data Suite ?

(J'utilise MQL4 pour le codage)
 

Quelqu'un peut-il essayer ce code lors d'un backtesting sur le graphique GBPAUD -4H ? Je suis vraiment coincé :(
Avez-vous obtenu 00 comme commentaire ?

double Ask2,Bid2;

----------------------------

void start()

{

Ask2=MarketInfo("GBPUSD",MODE_ASK);
Bid2=MarketInfo("GBPUSD",MODE_BID);
Comment(Ask2, Bid2);

}
 
HosseinKOGO: J'utilise Tick Data Suite de eareview.net et j'ai téléchargé l'historique de mes paires cibles, y compris la GBPUSD, avant de procéder au backtesting. De plus, Journal ne me donne pas d'erreur. S'agit-il d'un problème d'intégration ? Dois-je chercher une solution en contactant le support Tick Data Suite (j'utilise MQL4 pour le codage) ?

Cela n'a rien à voir avec le TDS. Vous devez faire en sorte que le terminal lise les données avant d' y accéder. Quelle partie de "avant d'accéder aux prix" n'était pas claire ?

HosseinKOGO : Je suis vraiment coincé :( Recevez-vous 00 comme commentaire ?

Vous allez rester comme ça quand vous ignorez l'aide que vous recevez. Quelle partie de "doit gérer" n'était pas claire ?

 
William Roeder:

Cela n'a rien à voir avec le TDS. Vous devez faire en sorte que le terminal lise les données avant d' y accéder. Quelle partie de "avant d'accéder aux prix" n'était pas claire ?

Vous allez rester comme ça quand vous ignorez l'aide que vous recevez. Quelle partie de "doit gérer" n'était pas claire ?

Désolé, je suis un codeur débutant et il semble que je n'ai pas pu comprendre ce que vous vouliez dire. En fait, ce que j'ai compris de votre conseil est "attendre de télécharger l'historique et les données de prix actuelles de la deuxième paire de devises avant de faire quoi que ce soit".

Pourriez-vous me donner plus de détails sur ce que je dois faire avec le code que vous avez posté ?

#define  HR2400 PERIOD_D1 * 60    // 86400 = 24 * 3600
int      TimeOfDay(datetime when=0){      if(when == 0)  when = TimeCurrent();
                                          return( when % HR2400 );            }
datetime DateOfDay(datetime when=0){      if(when == 0)  when = TimeCurrent();
                                          return( when - TimeOfDay(when) );   }
#define  SYMBOL string
#define  THIS_SYMBOL ""
bool  download_history(ENUM_TIMEFRAMES period=PERIOD_CURRENT){
   return download_history(_Symbol, period); 
}
bool  download_history(
      SYMBOL            symbol=THIS_SYMBOL,     ///< The symbol required.
      ENUM_TIMEFRAMES   period=PERIOD_CURRENT   /**< The standard timeframe.*/){
   if(symbol == THIS_SYMBOL)     symbol = _Symbol;
   if(period == PERIOD_CURRENT)  period = _Period;
   datetime today = DateOfDay();
   ResetLastError();
   datetime other = iTime(symbol, period, 0);
   if(_LastError == 0 
   && today == DateOfDay(other)) return true;   
   if(_LastError != ERR_HISTORY_WILL_UPDATED
   && _LastError != ERR_NO_HISTORY_DATA
      Print(StringFormat("iTime(%s,%i) Failed: %i", symbol, period,_LastError));
   return false;
}

J'ai copié le code supérieur dans ma zone globale et il me donne des erreurs et des avertissements.

J'ai également copié cette ligne de code dans ma fonction de démarrage :

while(!download_history(PERIOD_M15) ){ Sleep(1000); RefreshRates(); }

Pourriez-vous me conseiller sur ce que je dois faire et où je dois insérer les informations et la ponctuation suffisantes ?

Encore une fois, désolé pour mon faible niveau de compétence...

 
  1. HosseinKOGO: et il me donne des erreurs et des avertissements.

    HosseinKOGO : Pourriez-vous me donner plus de détails sur ce que je dois faire avec ce code que vous avez posté ?

    1. Vous n'avez pas réussi à faire des corrections aussi mineures ?
      int      TimeOfDay(datetime when=0){      if(when == 0)  when = TimeCurrent();
                                                return( int( when % HR2400) );            }
      
        if(_LastError != ERR_HISTORY_WILL_UPDATED
         && _LastError != ERR_NO_HISTORY_DATA
         )  Print(StringFormat("iTime(%s,%i) Failed: %i", symbol, period,_LastError));
      

    2. Tu l'as déjà posté pour un EA.
      while(!download_history(PERIOD_M15) ){ Sleep(1000); RefreshRates(); }
 
William Roeder:
    1. Vous ne pouvez pas comprendre des corrections aussi mineures ?

    2. Vous l'avez déjà posté pour un EA.

Merci pour votre réponse,

En fait, je ne suis pas un codeur, mais j'ai essayé de coder quelques EA. Mon travail est lié à la créativité et à la stratégie, j'ai donc réfléchi à 600-700 idées pour créer des EAs et je les ai construites jusqu'à présent. Je ne peux coder que des EAs très simples et je ne suis pas habitué à votre codage de haut niveau...

J'ai mis ces codes dans mon EA mais il retourne juste cette erreur : 2019.05.06 15:37:56.586 2018.01.02 00:00:07 MyEA ! GBPAUD,H4 : iTime(GBPUSD,240) Échec : 0

J'essaie GBPAUD comme graphique ouvert et GBPUSD comme deuxième paire.

Quel est le problème ?