Discussion sur la mise en place des conseillers. - page 6

 
Ivan_Invanov:
Bonjour. Pourriez-vous me dire quel est le signal d'entrée sur le marché de cet EA et où il se trouve dans le code ?

Vous connectez le module de signaux de l'indicateur personnalisé dans la ligne

//--- available signals
#include <Expert\Signal\SignalMA.mqh>


et icivous pouvez vérifierles signaux de trading de cet indicateur


Il y a suffisamment d'informations à ce stade et vous devez les digérer. Je vous recommande également de lire les articles suivants

Документация по MQL5: Стандартная библиотека / Модули стратегий / Модули торговых сигналов / Сигналы индикатора Moving Average
Документация по MQL5: Стандартная библиотека / Модули стратегий / Модули торговых сигналов / Сигналы индикатора Moving Average
  • www.mql5.com
Цена пересекла индикатор сверху вниз(цена Open анализируемого бара выше линии индикатора, а цена Close - ниже), но индикатор растет (слабый сигнал на отбой от линии индикатора). Цена пересекла индикатор нижней тенью (цены Open и Close анализируемого бара выше линии индикатора, а цена Low ниже) и индикатор растет (сигнал на отбой от линии...
 

Les gars, voici une question

Quelle est la bonne façon de faire une contrainte d'optimisation des paramètres pour qu'ils ne se superposent pas, il y a trop de dépassements inutiles.

input  int                Profit_Lev1        = 5;           // |     1-я фиксация прибыли 
sinput string _p1="";//---
input  int                Profit_Lev2        = 7;           // |     2-я фиксация прибыли 
sinput string _p2="";//---
input  int                Profit_Lev3        = 10;          // |     3-я фиксация прибыли


Nous avons 3 niveaux de prise de bénéfices, le 1er ne doit pas être supérieur au 2ème et 3ème et le 2ème ne doit pas être supérieur au 3ème.

//+------------------------------------------------------------------+
//| Проверяет внешние параметры                                      |
//+------------------------------------------------------------------+
bool CheckInputParameters()
  {
     if(Profit_Lev1 >= Profit_Lev2  || Profit_Lev1 >= Profit_Lev3 || Profit_Lev2 >= Profit_Lev3)
       {
         Print(_Symbol,
               ": 1-й уровень профита ("+IntegerToString(Profit_Lev1)+") "
               "должен быть больше 2-го и 3-го уровня профита ("+IntegerToString(Profit_Lev2)+"   "+IntegerToString(Profit_Lev3)+")!");
         return(false);
        }                     
//--- Параметры корректны
   return(true);
  }

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  { 


//--- Проверим внешние параметры
   if(!CheckInputParameters())
      return(INIT_PARAMETERS_INCORRECT);


//--- Инициализаия прошла успешно
   return(INIT_SUCCEEDED);
  }


Je commence l'optimisation

Le journal commence à avoir beaucoup d'erreurs, peut-être quelque chose qui réinitialise le robot.


Mais le fait est que le robot est optimisé pendant 20 minutes et que l'optimisation s'arrête, bien que si je ne spécifie pas de limite et que je laisse les choses suivre leur cours, où la première peut être supérieure à la seconde, alors l'optimisation est pleinement opérationnelle plus d'une journée.

Je ne veux pas qu'ils aillent l'un après l'autre et ne sautent pas l'un sur l'autre, parce qu'il y a d'autres logiques sous forme de points et de transfert de points sur ces niveaux dans l'algorithme.

 
Konstantin Seredkin:

Les gars, voici une question

Quelle est la bonne façon de faire une contrainte d'optimisation des paramètres pour qu'ils ne se superposent pas, trop de dépassements inutiles.


Nous avons 3 niveaux de prise de bénéfices, le 1er ne doit pas être supérieur au 2ème et au 3ème et le 2ème ne doit pas être supérieur au 3ème.

Introduire non pas trois "niveaux de profit" mais "niveau de base", "2ème niveau sur le niveau de base" et "3ème niveau sur le 2ème niveau".

C'est tout. On fait un dépassement complet.

Si nous voulons que les trois niveaux s'inscrivent dans un intervalle fixe, nous introduisons les variables "largeur de l'intervalle" et deux "limites entre les niveaux", où la première limite est une fraction de l'intervalle, et la seconde une fraction de la partie restante (après la première limite) de l'intervalle.

Je le ferais de cette façon...

 
Georgiy Merts:

Introduire non pas trois "niveaux de profit", mais "niveau de base", "dépassement du deuxième niveau par rapport au niveau de base" et "dépassement du troisième niveau par rapport au deuxième niveau".

C'est tout. On fait un dépassement complet.

Si nous voulons que les trois niveaux s'inscrivent dans un intervalle fixe, nous introduisons les variables "largeur de l'intervalle" et deux "limites entre les niveaux", où la première limite est une fraction de l'intervalle, et la seconde une fraction de la partie restante (après la première limite) de l'intervalle.

Je le ferais de cette façon...

Cela fait-il une différence si je vérifie le premier niveau avec le deuxième et le troisième, ou si je vérifie le troisième niveau avec le premier et le deuxième, car le sens est le même.
 
Konstantin Seredkin:
Ainsi, à partir du changement de place du sommand sera la différence que je vérifie le premier niveau avec le deuxième et le troisième, que le troisième niveau avec le premier et le deuxième vérifier, la signification de la même.

Vous avez des paramètres incorrects lorsque le premier niveau est supérieur au second, etc., et dans la version proposée, ces contrôles disparaîtront, et tous les ensembles seront corrects.

 
Konstantin Seredkin:
Donc, cela fera-t-il une différence si je vérifie le premier niveau avec le deuxième et le troisième, ou si je vérifie le troisième niveau avec le premier et le deuxième, la signification est la même.

La question était en quelque sorte de savoir comment dépasser le "pas de chevauchement". Si le premier niveau correspond, par exemple, à 10 % de la fourchette, il est impossible que le deuxième niveau le franchisse, car il est mesuré dans les 90 % restants.

 
Georgiy Merts:

La question était en quelque sorte de savoir comment dépasser le "pas de chevauchement". Si le premier niveau, par exemple, représente 10 % de la gamme - il est impossible que le deuxième niveau y grimpe, car il est mesuré dans les 90 % restants.

Je ne comprends toujours pas.

Ce ne sont pas seulement des variables statiques, ce sont des variables externes dans lesquelles je fixe 3 take profit.


Le robot négocie 3 lots

en 100 pips je veux fermer 1 lot = c'est le premier niveau de profit

200 lots de plus = deuxième niveau de profit

300 lots de plus = troisième niveau de profit


Mais avec le premier niveau, le robot fixe un stop loss à Breakeven.

Au deuxième niveau, il transfère cet arrêt au premier niveau de profit.

S'il n'y avait pas de seuil de rentabilité, la façon dont l'optimiseur sélectionnerait ces niveaux n'aurait aucune importance, même si le premier niveau était de 300, le deuxième de 50 points et le troisième de 150.

mais la méthode Breakeven nécessite un ordre précis, donc je ne veux pas que l'optimiseur les choisisse comme ceci

300 50 150

50 300 150

etc.

Je veux juste que ça se passe normalement.

50 100 200

150 160 170

etc.

Vérification de l'exactitude des paramètres saisis

//+------------------------------------------------------------------+
//| Проверяет внешние параметры                                      |
//+------------------------------------------------------------------+
bool CheckInputParameters()
  {
     if(Profit_Lev1 >= Profit_Lev2  || Profit_Lev1 >= Profit_Lev3 || Profit_Lev2 >= Profit_Lev3)
       {
         Print(_Symbol,
               ": 1-й уровень профита ("+IntegerToString(Profit_Lev1)+") "
               "должен быть больше 2-го и 3-го уровня профита ("+IntegerToString(Profit_Lev2)+"   "+IntegerToString(Profit_Lev3)+")!");
         return(false);
        }                     
//--- Параметры корректны
   return(true);
  }

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  { 


//--- Проверим внешние параметры
   if(!CheckInputParameters())
      return(INIT_PARAMETERS_INCORRECT);


//--- Инициализаия прошла успешно
   return(INIT_SUCCEEDED);
  }

Lors de l'optimisation il est écrit qu'il y a eu des sauts sur un tas de courses, c'est bien qu'il réinitialise les paramètres qui ne peuvent pas être appliqués, mais l'optimiseur fonctionne pendant quelques minutes puis s'arrête.

Je suppose que ce chèque doit être joué d'une autre manière.

Ce que vous suggérez, je ne peux pas le comprendre sans un exemple de ce dont vous parlez.

 
Konstantin Seredkin:

Je ne comprends toujours pas.

Il n'y a pas que des variables statiques, il y a aussi des variables externes dans lesquelles je place des profits.


Le robot négocie 3 lots

en 100 pips je veux fermer 1 lot = c'est le premier niveau de profit

200 lots de plus = deuxième niveau de profit

300 lots de plus = troisième niveau de profit


Mais avec le premier niveau, le robot fixe un stop loss à Breakeven.

Au deuxième niveau, il transfère cet arrêt au premier niveau de profit.

S'il n'y avait pas de seuil de rentabilité, la façon dont l'optimiseur sélectionnerait ces niveaux n'aurait aucune importance, même si le premier niveau était de 300, le deuxième de 50 points et le troisième de 150.

mais la méthode Breakeven nécessite un ordre précis, donc je ne veux pas que l'optimiseur les choisisse comme ceci

300 50 150

50 300 150

etc.

Je veux juste que ça se passe normalement.

50 100 200

150 160 170

etc.

Vérification de l'exactitude des paramètres saisis

Lors de l'optimisation il est écrit qu'il y a eu des sauts sur un tas de courses, c'est bien qu'il réinitialise les paramètres qui ne peuvent pas être appliqués, mais l'optimiseur fonctionne pendant quelques minutes puis s'arrête.

Je suppose que ce chèque doit être joué d'une autre manière.

Je ne peux pas comprendre ce que vous suggérez sans un exemple.

Dans l'entrée, il ne faut pas fixer des niveaux, mais des distances entre eux.

input uint firstLevel=20 ; // пунктов от цены до первого ТП

input uint secondDistance=30; // пунктов от первого ТП до второго

input uint thirdDistance=50; // пунктов от второго ТП до конечного

Alors l'optimiseur ne pourra physiquement pas échanger les niveaux

 

Bonjour, il y a des gars qui mettent en place à distance un EA sur mt4, qui trade automatiquement, sur une machine vm sur le cloud Yandex. Si je ne me trompe pas, je pourrai obtenir une copie du jeu sur mon disque dur et la faire fonctionner. Cp

P.s désolé pour mon langage obtus, je ne comprends pas la terminologie et l'essence de ces choses.

 

Bonjour !

J'ai décidé d 'écrire un EA. À cet égard, il est nécessaire de modifier les signaux qui seront utilisés par l'EA pour ouvrir des ordres. Par exemple, l'indicateur DeMarker - je veux que mon conseiller expert ouvre des ordres uniquement lorsque cet indicateur franchit 0,3 de bas en haut (achat) et 0,7 de haut en bas (vente). Ai-je bien compris que je dois corriger le fichier SignalDeMarker.mqh (les sections de code avec les commentaires "Voter" que le prix va augmenter. et "Voter" que le prix va baisser.) ?

Raison: