Questions des débutants MQL5 MT5 MetaTrader 5 - page 755

 

Bonjour !

J'ai besoin d'aide et de conseils. Dans le terminal, il est possible de mélanger plusieurs indicateurs. Dans ce cas, il est possible de fixer les fourchettes.

Par exemple, CCI min=-300 max=300 et RSI min=0 max=100.

Est-il possible d'implémenter dans l'Expert Advisor de croiser 2 indicateurs. Supposons que le CCI croise le RSI de bas en haut => ouvrir un ordre Bay.

Est-ce possible ?

Ou bien cela n'est-il pas possible car ces indicateurs ont une gamme de valeurs différente. Avec le rsi, la plage de valeurs est limitée de 0 à 100, et avec le cci, les valeurs peuvent être aussi bien positives que négatives et ne sont pas limitées à la valeur max/min...

 
lomaxx7:

Bonjour !

J'ai besoin d'aide et de conseils. Dans le terminal, il est possible de mélanger plusieurs indicateurs. Dans ce cas, il est possible de fixer les fourchettes.

Par exemple, CCI min=-300 max=300 et RSI min=0 max=100.

Est-il possible d'implémenter dans l'Expert Advisor de croiser 2 indicateurs. Supposons que le CCI croise le RSI de bas en haut => ouvrir un ordre Bay.

Est-ce possible ?

Ou bien cela n'est-il pas possible car ces indicateurs ont une gamme de valeurs différente. Avec le rsi, la plage de valeurs est limitée de 0 à 100, et avec le cci, les valeurs peuvent être aussi bien positives que négatives et ne sont pas limitées à la valeur max/min...

Si vous écrivez votre propre iRSI dans ce but, vous pouvez soustraire 50 de la valeur iRSI et obtenir un indicateur avec un niveau zéro. Une question demeure : à quoi sert de mélanger les indicateurs de cette manière ?

 
Alexey Viktorov:

Si vous écrivez votre propre iRSI dans ce but précis, vous pouvez soustraire 50 de la valeur de l'iRSI et obtenir un indicateur de niveau zéro. Une question demeure : à quoi sert de mélanger les indicateurs de cette manière ?

Merci. Il y a quelques idées qui doivent être élaborées.
 

lomaxx7:

Est-il possible d'implémenter dans un EA la fonction de croisement de 2 indicateurs. Supposons que le CCI croise le RSI de bas en haut => ouverture de l'ordre Bay...

Est-ce possible ?

Ou bien cela n'est-il pas possible car ces indicateurs ont une gamme de valeurs différente. Avec le rsi, la plage de valeurs est limitée de 0 à 100, et avec le cci, les valeurs peuvent être aussi bien positives que négatives et ne sont pas limitées à la valeur max/min...

Pas compliqué. Vous pouvez calculerCCI parRSI et vice versa. Regardez la documentation. Il y a une explication pour chaque indicateur, quels prix peuvent être utilisés.

https://www.mql5.com/ru/docs/indicators/irsi

prix appliqué

[Prix d'occasion . Il peut s'agir de l'une des constantes de prix ENUM_APPLIED_PRICE ou d'un handle d'un autre indicateur.

Par exemple, nous substituons la poignée CCI auRSI:

int OnInit()
h_cci=iCCI(_Symbol, _Period, cci_ma_period, cci_applied_price);
h_rsi=iRSI(_Symbol, _Period, rsi _ma_period, h_cci);
Далее
void OnTick() 
if(CopyBuffer(h_cci,0,0,to_copy, cci_buf)<=0) return(0);
if(CopyBuffer(h_rsi,0,0,to_copy, rsi _buf)<=0) return(0);
Далее сравниваете значения:
if(cci_buf>rsi_buf) {...ваши действия; ...buy; ...sell;} 
else
if(cci_buf<rsi_buf) {...ваши действия; ...buy; ...sell;}

La plage de valeurs dans ce cas n'est pas importante car l'oscillateur suivant utilise déjà les valeurs de l'oscillateur précédent.

Документация по MQL5: Технические индикаторы / iRSI
Документация по MQL5: Технические индикаторы / iRSI
  • www.mql5.com
Технические индикаторы / iRSI - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
 //+------------------------------------------------------------------+
class A
  {
public: int       propA;
public:
                     A(void) {propA = 15;};
                    ~A(void) {};
  };
//+------------------------------------------------------------------+
class B: public A
  {
public:
                     B(void){};
                    ~B(void){};
  };
//+------------------------------------------------------------------+
void OnStart()
  {
   B newObj;
   GetA(newObj);
//---
   //B newObjArray[3];
   //GetA_Array(newObjArray);
  }
//+------------------------------------------------------------------+
void GetA(A &obj)
  {
   Print(obj.propA);
  }
//+------------------------------------------------------------------+
void GetA_Array(A &obj[])
  {
   for(int i=0;i<ArraySize(obj);i++)
      Print(obj[i].propA);
  }
//+------------------------------------------------------------------+

Si nous décommentons les lignes restantes dans OnStart(), nous obtenons "newObjArray - parameter conversion not allowed".

Deux questions : pourquoi, et comment y remédier ?
 

Pouvez-vous me dire comment obtenir un rapport de position à partir du terminal ?

Le problème est que dans le terminal, je vois une position normale, mais dans le rapport Excel, elle est divisée en plusieurs parties, ce qui n'est pas pratique pour moi.

 

Bonjour 2017.06.30_18:11 GMT+3. Les connaisseurs du forum. J'ai testé mon EA dans MT5 dans le testeur de stratégie. Il ouvre et ferme des transactions, mais il semble que ce soit uniquement sur la première condition d'ouverture et de fermeture des transactions. J'ai donc décidé de tester l'EA sur un compte de démonstration. Cependant, l'EA disparaît immédiatement du graphique sur le compte de démonstration. Il s'avère qu'il y a une erreur sur le compte de démonstration : 2017.06.30 18:08:17.878 Late_raw3 (GOLD,M1) array out of range in 'Cross.mqh' (18,12).
Étrangement, aucune erreur de ce type n'a été trouvée dans le testeur de stratégie. J'ai essayé de chercher l'erreur mais je n'ai pas réussi à la comprendre. La question est aussi stupide qu'elle peut l'être. C'était très déroutant pour moi. Les programmeurs de MetaQuotes pourraient-ils se tromper dans ce cas ? L'Expert Advisor standard Moving Average.mq5 a le même code (je l'ai réécrit à partir de là). Il n'y a pas d'erreur sur le compte de démonstration. Mais il n'a pas été échangé. J'ai négocié sur М1. Je n'ai pas attendu longtemps, cependant. Quel est le problème ? Je vais attendre vos réponses. J'ai hâte d'y être. Vous trouverez les fichiers ci-joints, bien qu'ils ne soient pas tous complets. 18 H 26 GMT+3. J'ai essayé différentes façons de modifier le code, mais le résultat est double : soit il sort du tableau, soit il écrit l'erreur "No indicator data". Et dans le journal du testeur de stratégie, vous pouvez voir comment les "overshoots" sont obtenus. Le prix d'ouverture de la première transaction est pris en compte. Il diffère du prix d'ouverture de la deuxième transaction. Cet "écart" (il est supérieur à mes 130 points) est appelé "dépassement". Vous devriez également dire "merci" aux programmeurs de MetaQuotes ? Vous ne vous ennuierez pas. Partout où vous allez, il y a un frein. Je vais terminer le conseiller expert plus tôt. 18 H 45 GMT+3. Si vous avez besoin d'éclaircissements, n'hésitez pas à me contacter. C'est tout. 18 H 51 GMT+3.

 
Николай Никитюк:

Bonjour 2017.06.30_18:11 GMT+3. Les connaisseurs du forum. J'ai testé mon EA dans MT5 dans le testeur de stratégie. Il ouvre et ferme des transactions, mais il semble que ce soit uniquement sur la première condition d'ouverture et de fermeture des transactions. J'ai donc décidé de tester l'EA sur un compte de démonstration. Cependant, l'EA disparaît immédiatement du graphique sur le compte de démonstration. Il s'avère qu'il y a une erreur sur le compte de démonstration : 2017.06.30 18:08:17.878 Late_raw3 (GOLD,M1) array out of range in 'Cross.mqh' (18,12).
Curieusement, aucune erreur de ce type n'a été trouvée dans le testeur de stratégie. J'ai essayé de chercher l'erreur mais je n'ai pas réussi à la comprendre. La question est aussi stupide qu'elle peut l'être. C'était très déroutant pour moi. Les programmeurs de MetaQuotes pourraient-ils se tromper dans ce cas ? L'Expert Advisor standard Moving Average.mq5 a le même code (je l'ai copié à partir de là). Il n'y a pas d'erreur sur le compte de démonstration. Mais il n'a pas été échangé. J'ai négocié sur М1. Je n'ai pas attendu longtemps, cependant. Quel est le problème ? Je vais attendre vos réponses. J'ai hâte d'y être. Vous trouverez les fichiers ci-joints, bien qu'ils ne soient pas tous complets. 18 H 26 GMT+3. J'ai essayé différentes façons de modifier le code, mais le résultat est double : soit il sort du tableau, soit il écrit l'erreur "No indicator data". Et dans le journal du testeur de stratégie, vous pouvez voir comment les "overshoots" sont obtenus. Le prix d'ouverture de la première transaction est pris en compte. Il diffère du prix d'ouverture de la deuxième transaction. Cet "écart" (il est supérieur à mes 130 points) est appelé "dépassement". Vous devriez également dire "merci" aux programmeurs de MetaQuotes ? Vous ne vous ennuierez pas. Tout ce que vous faites est lent. Je vais terminer le conseiller expert plus tôt. 18 H 45 GMT+3. Si vous avez besoin d'éclaircissements, n'hésitez pas à me contacter. C'est tout. 18 H 51 GMT+3.


Jusqu'à présent, il semble que "rates" (fichier "Cross.mqh", ligne 18, position du curseur 12) est déclaré quelque part au niveau global - donc toutes les questions se résument à : "Comment ce "taux" est-il réellement rempli ?".

 

J'essaie de calculer l'angle d'intersection de deux courbes. La tâche n'est même pas de trouver l'angle lui-même, mais de vérifier s'il est aigu ou obtus. J'ai même dessiné ça. Je peux trouver la tangente de B et la tangente de C. Comment connaître ces tangentes, pour déterminer si l'angle A est aigu. Aidez-moi, je ne suis pas très bon en trigonométrie. Bien sûr, sans trouver les angles eux-mêmes - à cause de la différence d'échelle - leurs valeurs sont inadéquates.


 
igorbel:

J'essaie de calculer l'angle d'intersection de deux courbes. La tâche n'est même pas de trouver l'angle lui-même, mais de vérifier s'il est aigu ou obtus. J'ai même dessiné ça. Je peux trouver la tangente de B et la tangente de C. Comment connaître ces tangentes pour déterminer si l'angle A est aigu. Aidez-moi, je ne suis pas très bon en trigonométrie. Bien sûr, sans trouver les angles eux-mêmes - à cause de la différence d'échelle - leurs valeurs sont inadéquates.


Pour trouver les tangentes, avez-vous un triangle rectangle ?
Raison: