Discussion de l'article "L’implémentation d'un mode multi-devises dans MetaTrader 5" - page 2

 
Lizar:

Mais le fait que l'expert dans le testeur ne puisse pas charger l'espion est étrange. Cela fonctionne-t-il dans la démo ?

Il obtient une erreur

ERR_INDICATOR_CANNOT_CREATE

4802

L'indicateur ne peut pas être créé

Voir pourquoi l'indicateur ne peut pas être créé.
 
Yedelkin:
Il obtient une erreur

ERR_INDICATOR_CANNOT_CREATE

4802

L'indicateur ne peut pas être créé

Voir pourquoi l'indicateur ne peut pas être créé.

Je n'ai pas encore trouvé. Sur la démo fonctionne, mais dans le testeur ne se charge pas (ne se crée pas). J'ai même essayé ceci :

#property tester_indicator "iSpy.ex5"
Cela n'aide pas.
 
Lizar:

Je n'ai pas encore d'indice. Sur la démo fonctionne, mais dans le testeur ne se charge pas (ne se crée pas). J'ai même essayé ceci :

Cela ne sert à rien.

Par la méthode de l'incitation scientifique, cela a fonctionné dans le testeur :

   if(iCustom("GBPUSD",PERIOD_M1,"iSpy.ex5",ChartID(),0)==INVALID_HANDLE) 

Et il suffisait d'insérer seulement dans la première condition, pour "GBPUSD". Maintenant la question - pourquoi exactement comme ça ?

 
Yedelkin:

Selon la méthode scientifique, c'est ainsi que cela a fonctionné dans le testeur :

Et il a suffi de l'insérer uniquement dans la première condition, pour "GBPUSD". La question est maintenant de savoir pourquoi exactement comme cela ?

Le "piquage scientifique" est une excellente chose dans notre secteur. A mon avis, la question de savoir pourquoi c'est comme ça doit être posée aux développeurs.

Merci de m'aider à le découvrir.

 
Lizar:

Il y a une ligne dans la fonction OnCalculate() dans le panneau de contrôle de l'espion MCM :

Par défaut, price[rates_total-1] est égal au prix de clôture de la dernière barre non finie, qui à son tour est égal au dernier prix de l'offre, c'est-à-dire que nous obtenons toujours le prix de l'offre de l'espion par défaut.

Si vous voulez obtenir le prix d'achat de force, remplacez cette ligne, par exemple, par ....

Merci, mais c'est un peu faux, c'est-à-dire que vous pouvez obtenir soit le cours acheteur, soit le cours vendeur. Mais j'ai besoin d'obtenir à la fois le cours acheteur et le cours vendeur pour analyser des situations comme celle-ci.

2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2 : EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2 : EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2 : EURUSD PERIOD_M1 price=1.35778
trois ticks et le bid ne change pas, donc (peut-être) le ask a changé. j'aimerais obtenir des informations plus complètes.

Est-ce possible ?

 
Trolls:

Merci, mais c'est un peu faux, c'est-à-dire que vous pouvez obtenir soit le cours acheteur, soit le cours vendeur. Mais pour obtenir les deux prix à la fois, l'offre et la demande, vous devez analyser des situations comme celle-ci.

2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2 : EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2 : EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2 : EURUSD PERIOD_M1 price=1.35778
trois ticks et le bid ne change pas, donc (peut-être) le ask a changé. j'aimerais recevoir des informations plus complètes.

Est-ce possible ?

C'est possible, il y a plusieurs façons :

1. avoir deux espions sur le même symbole sous des identifiants différents. L'un d'eux enverra un ordre d'achat et l'autre un ordre de vente.

2. avoir un espion sur le même symbole, mais lui faire envoyer deux événements bid et ask séquentiellement sous des identifiants différents.

3. il y a d'autres options, mais elles sont déjà associées à des modifications significatives du schéma de passage des paramètres à OnChartEvent - je ne les conseille pas.

Документация по MQL5: Основы языка / Функции / Передача параметров
Документация по MQL5: Основы языка / Функции / Передача параметров
  • www.mql5.com
Основы языка / Функции / Передача параметров - Документация по MQL5
 
Utilisez l'espion comme un "sémaphore de l'arrivée d'un nouveau tic-tac", et dans l'Expert Advisor, obtenez des informations complètes sur le tic-tac à l'aide de SymbolInfoTick.
 
Kos:
Utilisez l'espion comme un "sémaphore de l'arrivée d'un nouveau tic-tac", et dans l'Expert Advisor, obtenez des informations complètes sur le tic-tac à l'aide de SymbolInfoTick.

Excellente solution.
 

Donnez-moi un indice, si vous le voulez bien. L'article contient un exemple d'énumération

enum ENUM_CHART_EVENT_SYMBOL
  {
   CHARTEVENT_INIT      =0,          // Événement "Initialisation"
   CHARTEVENT_NO        =0,          // Événements déconnectés

   CHARTEVENT_NEWBAR_M1 =0x00000001, // Événement "nouvelle barre" sur le graphique 1 minute
   CHARTEVENT_NEWBAR_M2 =0x00000002, // Événement "nouvelle barre" sur le graphique 2 minutes
   CHARTEVENT_NEWBAR_M3 =0x00000004, // Événement "nouvelle barre" sur le graphique 3 minutes
   CHARTEVENT_NEWBAR_M4 =0x00000008, // Événement "nouvelle barre" sur le graphique 4 minutes
   
   ...
   
   CHARTEVENT_ALL       =0xFFFFFFFF, // Tous les événements sont activés
  };

et un exemple d'utilisation des valeurs de cette énumération :

if((flag_event & CHARTEVENT_NEWBAR_M1)!=0) EventCustom(CHARTEVENT_NEWBAR_M1,price_current

Des constructions similaires sont observées dans la bibliothèque standard. Pour autant que je comprenne, nous parlons de nombres hexadécimaux et d'opérations bitwise, mais quelques articles généraux trouvés sur Internet n'ont pas aidé à clarifier la signification et le but de leur utilisation dans MQL5. Pourriez-vous m'indiquer où l'on peut se familiariser clairement avec les particularités de la logique hexadécimale utilisée dans MQL5 ?

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Yedelkin:

Donnez-moi un indice, si vous le voulez bien. L'article contient un exemple d'énumération

et un exemple d'utilisation des valeurs de cette énumération :

Des constructions similaires sont observées dans la bibliothèque standard. Pour autant que je comprenne, nous parlons de nombres hexadécimaux et d'opérations bitwise, mais quelques articles généraux trouvés sur Internet n'ont pas aidé à clarifier la signification et le but de leur utilisation dans MQL5. Pourriez-vous me dire où l'on peut se familiariser clairement avec les particularités de la logique hexadécimale utilisée dans MQL5 ?

La logique hexadécimale est la même partout. Vous pouvez vous renseigner sur les systèmes de numération ici. Vous y trouverez des informations sur les systèmes de nombres positionnels et des références aux 16 et aux nombres binaires. Vous y trouverez également des exemples de conversion d'un système à l'autre.

Toutes les opérations bit à bit sont destinées au système binaire. Pour en savoir plus sur les opérations bitwise dans MQL5 , cliquez ici.