Discussion de l'article "Guide étape par étape pour rédiger un conseiller expert en MQL5 pour les débutants" - page 30

 
timmytrade #:

Testeur - "Mode de remplissage non pris en charge".

J'ai essayé sur 3 courtiers différents. Quel est le problème ?

Essayez de remplacer SYMBOL_FILLING_FOK par SYMBOL_FILLING_IOC.

Cordialement, Vladimir.

 
Bonjour Samual, votre article est excellent. Et la technique d'utilisation de l'indicateur moyenne mobile et ADX est géniale car je l'ai testée avec la paire de devises EUR/US H2 sur 2010.01.01 -2010.07.01 et 2017.01.01-2017.07.01. C'est excellent. C'est mieux que d'utiliser l'indicateur Hummer Hanging Man + Stochastics. Et c'est mieux que l'indicateur ThreeEMA. Je vous remercie. Maintenant je travaille sur votre code.
 
mirac baver ozturk #:

Bonjour à tous (surtout à l'auteur)

J'ai codé en suivant cet article. Je l'ai beaucoup apprécié et j'ai beaucoup appris.

Merci d'avoir écrit un article aussi instructif.

Cependant, j'ai un problème. Mon EA n'a pas passé d'ordre. J'ai téléchargé le code de l'auteur mais il n'a pas passé d'ordre non plus.

Comme l'article date de 13 ans, je suppose que le code est maintenant dépassé. Quelqu'un peut-il m'aider ?

Mon code se trouve dans le fichier ci-dessous. Merci d'avance.

Ce code fonctionne déjà.
 

Visitez la page anglaise non traduite, qui est le téléchargement correct.

Télécharger depuis cette page : Guide d'écriture d'un Expert Advisor en MQL5 pour les débutants, étape par étape - Articles MQL5

https://www.mql5.com/en/articles/100

 

Chers lecteurs, chères lectrices ;

Dans cet article, il y a le code complet mlq5 à télécharger.

J'ai téléchargé pour vérifier la fonction et j'ai trouvé que le programme a un algorithme incorrect.

La configuration est la suivante : EURUSD, M1, 100USD du 2025/01/01 au 2025/01/31.

Le premier ordre est un ordre de vente, puis il y a plusieurs ordres d'achat.

Le concept est qu'il ne devrait y avoir qu'un seul ordre mais cela se produit à partir de la ligne 165.

L'indicateur permettant de vérifier si un ordre a été passé ou non est séparé en deux variables (Buy_opned, Sell_opened).

Si un ordre de vente a déjà été passé, un nouvel ordre d'achat sera passé à la ligne 216 (Ordersend), même si un ordre de vente a déjà été passé.

Attendre la prochaine bougie L'indicateur Buy_open de la ligne 172 ne peut pas être remis à zéro. Parce que le premier ordre est un ordre de vente et le second un ordre d'achat.

Et oui, à la prochaine bougie, un nouvel ordre d'achat sur la ligne 216 (Ordersend) se produira et continuera, de nombreux ordres d'achat se produiront jusqu'à ce qu'il n'y ait plus d'argent.

Voir le graphique ici.



Voir la liste des ordres.


Je vous remercie.

Niwath Jeamphue.

 
Niwath Jeamphue #:

Chers tous ;

Dans cet article en bas, il y a le code complet mlq5 à télécharger.

J'ai téléchargé pour vérifier la fonction et j'ai trouvé que le programme a un algorithme incorrect.

La configuration est EURUSD ,M1,100USD débutant le 2025/01/01 au 2025/01/31

Le premier ordre est un ordre de vente, ensuite il y a plusieurs ordres d'achat.

Le concept est qu'il ne devrait y avoir qu'un seul ordre, mais cela se produit à partir de la ligne 165.

L'indicateur permettant de vérifier si une commande a été passée ou non est séparé en deux variables (Buy_opned, Sell_opened).

Si un ordre de vente a déjà été passé, alors la ligne 216 (Ordersend) créera un nouvel ordre d'achat même si un ordre de vente a déjà été passé.

Attendre la prochaine bougie L'indicateur Buy_open de la ligne 172 ne peut pas être remis à zéro. Parce que le premier ordre est un ordre de vente et le second un ordre d'achat.

Et oui, à la prochaine bougie, un nouvel ordre d'achat sur la ligne 216 (Ordersend) se produira et continuera, de nombreux ordres d'achat se produiront jusqu'à ce qu'il n'y ait plus d'argent.

Voir le graphique ici.



Voir la liste des commandes.


Nous vous remercions.

Niwath Jeamphue.

Vous ne devez pas utiliser PositionSelect(_Symbol) à moins que vous n'utilisiez un compte de compensation.

Sur un compte de couverture, vous devez sélectionner votre position correctement, avec PositionGetTicket() ou PositionSelectByTicket(). Consultez la documentation.

 
Alain Verleyen #:

Vous ne devez pas utiliser PositionSelect(_Symbol) à moins d'utiliser un compte de compensation.

Sur un compte de couverture, vous devez sélectionner votre position correctement, avec PositionGetTicket() ou PositionSelectByTicket(). Consultez la documentation.

Je vous remercie pour votre commentaire. Mais je veux juste dire à tout le monde que le code source provient de la version finale complète de cet article.

https://www.mql5.com/fr/articles/download/100/my_first_ea.mq5

Je vous invite à essayer par vous-même, vous comprendrez mieux mon point de vue.

Je vous remercie.

 
Niwath Jeamphue #:

Merci pour votre commentaire. Mais je veux juste dire à tout le monde que le code source provient de la version finale complète de cet article.

https://www.mql5.com/fr/articles/download/100/my_first_ea.mq5

Je vous invite à essayer par vous-même, vous comprendrez mon point de vue.

Je vous remercie.

Cet article date de 2010, à l'époque TOUS les comptes étaient des comptes de compensation sur MT5, y compris pour le Forex.

Les comptes de couverture ont été introduits en 2016 : https://www.mql5.com/fr/articles/2299

MetaTrader 5 features hedging position accounting system
MetaTrader 5 features hedging position accounting system
  • 2016.03.21
  • www.mql5.com
In order to expand possibilities of retail Forex traders, we have added the second accounting system — hedging. Now, it is possible to have multiple positions per symbol, including oppositely directed ones. This paves the way to implementing trading strategies based on the so-called "locking" — if the price moves against a trader, they can open a position in the opposite direction.
 

Niwath Jeamphue #:

Essayez-le vous-même, vous comprendrez mon point de vue.

Je vous remercie.

Bonjour. Je comprends votre point de vue. Dans le fichier joint, j'ai modifié le code source de l'Expert Advisor afin qu'une seule position soit ouverte, quel que soit le compte utilisé - netting ou hedge.

Cordialement, Vladimir.

Dossiers :
 
MrBrooklin #:

Bonjour. Je comprends votre point de vue. Dans le fichier joint, j'ai modifié le code source de l'Expert Advisor pour qu'une seule position soit ouverte, quel que soit le compte utilisé - netting ou hedge.

Cordialement, Vladimir.

Compte de couverture ,MrBrooklin . Je vous remercie. Mais je préfère ne recevoir qu'un seul ordre, pas autant d'ordres.

J'ai changé d'algo par rapport à l'original

Effacer les drapeaux d'achat et de vente ouverts

Si (PositionSelect(_Symbol)==true)

S'il s'agit d'une position d'achat, le drapeau Buy_opened est activé.

Else S'il s'agit d'une position de vente, définir le drapeau Sell_opened

Zone1 : Essayer d'ouvrir un ordre d'achat sous condition et !drapeau Buy_opened

Zone2 : Essayer d'ouvrir un ordre de vente sous condition et !flag Sell_opened

Pour le nouvel algo, cela fonctionne bien maintenant.

Si (PositionsTotal() > 0) retour

Effacer les drapeaux d' achat et de vente ouverts

Si l'on constate qu'il s'agit d'une position d'achat, on active le drapeau Buy_opened.

Else S'il s'agit d'une position de vente, mettre le drapeau Sell_opened

Zone1 : Essayer d'ouvrir un ordre d'achat sous condition et !drapeau Buy_opened

Zone2 : Essayer d'ouvrir un ordre de vente à condition et !flag Sell_opened