![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
La fonction CrossPointOfSections().
Cette fonction calcule les coordonnées du point d'intersection de deux segments. Chaque segment est défini par une paire de ses coordonnées ponctuelles. Trois tableaux sont passés à la fonction comme paramètres :
Ce script est destiné à être testé.
Bon après-midi. Question sur les fonctions qui renvoient un drapeau pour fermer la dernière position à une prise ou un stop loss.
Fonctions utiles de KimIV.
Fonction isCloseLastPosByTake().
Cette fonction renvoie l'indicateur de fermeture de la dernière position sur la prise. Le drapeau est levé - Vrai - TakeProfit a été déclenché. Drapeau abaissé - Faux - le poste a été fermé pour une autre raison.
//---------------------------------------------------------------
Hier, j'ai posé cette question sur le forum général. Mais jusqu'à présent, pas de réponse.
Mon conseiller expert a une martingale en 3 étapes. Chaque étape (position) a sa propre magie (1,2,3).
Les positions sont fermées par des signaux et/ou des stops.
Ce type de fermeture est également mis en œuvre :
Il s'avère que mon conseiller expert fonctionne bien tant que la dernière (plus grande position) d'une étape de martigues n'est pas fermée au moment du Take Profit!
Ensuite, lorsque la première position suivante (magique 1) est ouverte, elle est fermée immédiatement, car le drapeau de la fonction isCloseLastPosByTake() reste positionné sur un (1) !
Et ainsi de suite jusqu'à l'infini. S'ouvre et se ferme.
De plus ! Le terminal se souvient de ce drapeau et même une nouvelle suppression/installation de l'EA n'aide pas (jusqu'à ce que vous changiez de magiks).
J'ai besoin d'un moyen de réinitialiser la fonction isCloseLastPosByTake() après la fermeture de toutes les positions.
Je me suis déjà tordu le cerveau à l'envers. Ça ne marchera pas !
Igor !, ou quiconque (qui le peut), veuillez me dire comment faire et si vous pouvez le faire ?
La réponse à ma question semble avoir été trouvée. Si vous êtes intéressé, c'est ici.
Une question pour les connaisseurs.
Exemples d'utilisation de la fonction ModifyOrder().
J'ai décidé de donner les tout premiers exemples que l'on m'a déjà demandés à maintes reprises. Il s'agit de l'ouverture de positions en termes d'exécution d'ordres de marché Market Watch. C'est lorsque nous ne pouvons pas simultanément donner un ordre d'ouverture de position au prix du marché et y attacher un ordre en attente. Une telle ouverture sur Market Watch doit être effectuée en deux étapes : d'abord, nous ouvrons une position, puis nous y attachons un ordre en suspens, c'est-à-dire que nous fixons des niveaux de prix StopLoss et TakeProfit.
1. Acheter 0,1 lot du symbole actuel et fixer un stop de 30 points
2. Vendez 0,15 lot du symbole actuel et fixez un SL=45, TP=99.
Un script de travail avec des exemples est inclus dans la remorque.
Tant que je n'ai pas mis dans mon EA un magik !
Toutes les positions se modifient normalement. Cependant -
Je ne comprends pas pourquoi la fonction OpenPosition() ne voit pas le magicien et continue à ouvrir des positions une par une sur chaque barre. J'ai déjà supprimé toutes les choses inutiles (je pensais que c'était mon erreur dans le code).
Et mettez le nombre de postes dans le commentaire. C'est inutile. Quand il y a des positions évidentes - le commentaire imprime zéro :
Je n'arrive pas à comprendre pourquoi la fonction ne peut pas voir le magicien ! Voici le code :
Vous trouverez ci-joint le fichier source de ce code. Pouvez-vous me dire où j'ai fait une erreur et pourquoi EA ne voit pas la magik ?
Oui, merci à tous(tmp.0 & Roger) ! Je l'ai réparé et tout fonctionne comme il se doit.
Mon inattention est à blâmer. Pas du tout la fonction OpenPosition().
Joueur, un indice !
Lors de l'utilisation de OrderCloseBuy - OrderCloseSell, le langage et le compilateur MKueL intégrés nécessitent deux paramètres de fonction(tickets de commande - achat et vente). Nous avons un ticket pour un ordre ouvert, mais comment pouvons-nous définir le second ? Ou peut-être que je n'ai pas compris quelque chose - l'auto-apprentissage du langage n'a rien écrit sur cette fonction et n'a pas d'exemple.
Merci d'avance !
Et voici une autre question pour Igor.
Avez-vous créé une fonction personnalisée distincte (ou autre) pour inverser la position d'achat et de vente et vice versa, sans l'habituel OrderClose-OrderSend ?