Auto-apprentissage du langage MQL5 à partir de zéro - page 74

 
VVT:

Attendez, vous avez une limite de temps pour négocier là-bas... Le temps de chalutage ne fait-il pas partie de ces restrictions ? Mais non, mauvais arrêt, étrange...

Votre conseiller expert est configuré pour fonctionner de 09:00:00 à 09:01:00, heure de Moscou, uniquement pour ouvrir une position. Aucun problème d'ouverture de poste. Le conseiller expert a été installé sur un compte de démonstration dans la plateforme de trading PSB-Forex.

J'ai décidé de mettre le conseiller expert sur mon compte de démonstration dans le terminal MetaQuote MT5. Tout a fonctionné comme prévu, mais le code de retour du serveur commercial 10016 est toujours présent. Très intéressant ! Je vais essayer d'analyser la question.

Cordialement, Vladimir.

 
MrBrooklin:

Valery, quel est le niveau de congélation ? Peut-être faut-il le prescrire d'une manière ou d'une autre dans le code ?

Salutations, Vladimir.

Ladistance de gel, plus correctement, est la distance d'un ordre/position de marché dans laquelle les ordres ne peuvent pas être exécutés. Les stops ne peuvent pas être placés dans cette zone. Utilisez votre stop estimé comme paramètre et vous obtiendrez celui requis dans la sortie. Le code est pour 4k. La logique est la même en 5. Le paramètre MarketInfo semble être le même.

int New_Stop(int Parametr)                      // Проверка стоп-прик.
  {
   int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Миним. дистанция
   if (Parametr < Min_Dist)                     // Если меньше допуст.
     {
      Parametr=Min_Dist;                        // Установим допуст.
      Alert("Увеличена дистанция стоп-приказа.");
     }
   return(Parametr);                            // Возврат значения
  }
//-------------------------------------------------------------- 12 -- 

Pour 5

SYMBOLE_TRADE_NIVEAU_DE_GEL

Distance de gel des opérations commerciales (en points)

int



Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как правило...
 
Valeriy Yastremskiy:

La distance de gel est correcte, c'est la distance de l'ordre/de la position de marché dans laquelle les ordres ne sont pas autorisés à être exécutés. Les arrêts ne peuvent pas être placés dans cette zone. Utilisez votre arrêt estimé comme paramètre, et vous obtiendrez l'arrêt souhaité dans la sortie. Le code est pour 4k. La logique est la même en 5. Les paramètres de MarketInfo semblent être les mêmes.

Merci, Valeriy ! Je vais continuer à améliorer le code de l'Expert Advisor.

Salutations Vladimir.

 
MrBrooklin:

Merci, Valery ! Je vais continuer à comprendre et à améliorer le code du conseiller expert.

Sincèrement, Vladimir.

Veuillez m'envoyer la fonction de calcul du stop et de modification de la position. Le code est long, pas beaucoup de temps)))))

 
Valeriy Yastremskiy:

Veuillez télécharger ici la fonction de calcul des arrêts et de modification des positions. Le code est long, pas beaucoup de temps)))))

Valery, il n'y a pas de fonction pour calculer le stop car il est défini dans les paramètres d'entrée comme ceci :

input ushort SL=200; //Стоп-лосс

et dans le code de la position d'achat, la ligne suivante est prescrite :

request.sl=NormalizeDouble(price-SL*point,digits);

Merci, Valery, mais je veux m'occuper moi-même de la modification du stop loss. Je dispose déjà de suffisamment d'informations pour améliorer moi-même le conseiller expert.

Salutations, Vladimir.

 
MrBrooklin:

Valery, il n'y a pas de fonction pour calculer le stop, car il est défini dans les paramètres d'entrée comme ceci :

et dans le code de la position d'achat, la ligne suivante est prescrite :

Merci, Valery, mais je veux m'occuper moi-même de la modification du stop loss. Je dispose déjà de suffisamment d'informations pour améliorer moi-même le conseiller expert.

Sincèrement, Vladimir.

request.sl=NormalizeDouble(price-SL*point,digits);
Alert("request.sl= ",request.sl);

Et aussi prix, SL et point pour être sûr)

 
Valeriy Yastremskiy:

Et aussi pour sûr le prix, SL et point)

Merci, Valery !

Sincèrement, Vladimir.

 
Valeriy Yastremskiy:

La distance de gel est correcte, c'est la distance de l'ordre/de la position de marché dans laquelle les ordres ne sont pas autorisés à être exécutés. Les arrêts ne peuvent pas être placés dans cette zone. Utilisez votre arrêt estimé comme paramètre, et vous obtiendrez l'arrêt souhaité dans la sortie. Le code est pour 4k. La logique est la même en 5. Le paramètre MarketInfo semble être le même.

Pour 5

SYMBOLE_TRADE_NIVEAU_DE_GEL

Distance de gel des opérations commerciales (en points)

int



Merci, Valery, pour cette clarification.

Salutations, Vladimir.

 

Bonne journée et bonne humeur à tous !

Je continue à étudier le langage de programmation MQL5. Aujourd'hui, c'est le moment où je peux mettre le code du conseiller expert avec un stop suiveur à la vue du public. Comme le code de l'Expert Advisor est assez lourd, j'ai dû couper les commentaires autant que possible et le publier dans un fichier appelé Trailing_Stop (v.1).mq5. Je publierai un peu plus tard la version de l'Expert Advisor avec des commentaires détaillés sur chaque ligne de code, sous une forme facilement compréhensible pour un étudiant de 1ère année d'une école de programmation.

Avant de publier le code, nous avons vérifié le conseiller expert dans le testeur de stratégie. Aucun problème n'a été détecté. Le système de compensation de la comptabilité des positions est utilisé dans l'Expert Advisor. Ce système de comptabilité signifie qu'à un moment donné sur le compte, il ne peut y avoir qu'une seule position ouverte pour le même symbole (titre).

À l'heure actuelle, le conseiller expert a mis en œuvre la capacité de :

  1. Vérifiez le compte de trading sur lequel vous prévoyez de l'installer. Si le conseiller expert est installé sur un compte de démonstration, l'autorisation de continuer à travailler apparaît dans la boîte de message. Si l'on tente d'installer le conseiller expert sur uncompte réel, la fenêtre de message affichera un avertissement indiquant qu'il ne peut continuer à fonctionner, puis il sera automatiquement supprimé de la fenêtre de travail du terminal de trading .
  2. Une fois par jour de négociation, à 9 heures précises (heure de Moscou), ouvrez automatiquement une position dans la direction dans laquelle le premier tick est dirigé. Par exemple, si le premier tick est dirigé vers le haut à 9 heures, heure de Moscou, une position d'achat sera ouverte ; si le premier tick est dirigé vers le bas, une position de vente sera ouverte.
  3. Définissez la taille du lot.
  4. Définissez la taille du stop loss.
  5. Spécifiez le niveau relatif au prix d'ouverture, auquel le Stop Loss est déplacé vers le Breakeven.
  6. Définissez l'étape de suivi du stop loss.

Cette version du conseiller expert met partiellement en œuvre les conseils suggérés précédemment par Vassily Sokolov. Tous les ajouts et commentaires détaillés seront inclus dans la version finale du conseiller expert.

AVERTISSEMENT ! !!

Cet Expert Advisor est développé selon le plan d'auto-apprentissage pour les comptes de démonstration, et il est destiné à des fins de formation uniquement ! Il n'est pas destiné à négocier sur un compte réel et à réaliser des bénéfices !

Salutations, Vladimir.

Dossiers :
 

Chers participants et lecteurs de ce fil de discussion !

J'ai passé la nuit à essayer de comprendre pourquoi le fichier publié précédemment avec le code Expert Advisor, qui présentait un défaut, ne pouvait pas être remplacé par la version corrigée. Ce matin, j'ai enfin trouvé la solution !

Franchement, je ne pensais pas que si quelqu'un parmi les participants au forum avait déjà téléchargé le fichier Trailing_Stop.mq5 avec le défaut, il ne serait pas possible de le prendre et de remplacer le fichier par un fichier corrigé portant le même nom. Il s'est avéré que vous devez également changer le nom de l'EA afin de publier la variante corrigée.

De ce fait, je m'excuse et vous propose de télécharger la version corrigée de l'Expert Advisor nommée Trailing_Stop (v.1).mq5 qui se trouve dans le message précédent.

Salutations, Vladimir.