Très utile. Merci à tous.
Steven
L'exemple qui suit se solde par une erreur.
Programmeurs, de l'aide pour mql5, s'il vous plaît !!!
Est-il possible d'utiliser une fonction de suivi ordinaire comme dans mql4 sans aucune classe ? Tout comme, par exemple, la fonction TradeSizeOptimised est implémentée dans Moving Averages.mq5.
J'ai déjà tout cherché, dans les exemples, les articles, le forum - je n'ai rien trouvé. Je suis déjà complètement perdu.... Peut-être que quelqu'un a une variante prête, je lui en serai très reconnaissant !!! - J'aimerais participer au championnat.
Programmeurs, de l'aide pour mql5, s'il vous plaît !!!
Est-il possible d'utiliser une fonction de suivi ordinaire comme dans mql4 sans aucune classe ? Tout comme, par exemple, la fonction TradeSizeOptimised est implémentée dans Moving Averages.mq5.
J'ai déjà tout cherché, dans les exemples, les articles, le forum - je n'ai rien trouvé. Je suis déjà complètement perdu.... Peut-être que quelqu'un a une variante prête, je lui en serai très reconnaissant !!! - J'aimerais participer au championnat.
voilà
int TrailingStop() { if(PositionSelect(Symbol())) // sélectionner la position { //MqlTradeRequest m_request ;// déclarer la structure de la demande au serveur //MqlTradeResult m_result ;// déclarer la structure de la réponse du serveur double Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID); // écrire le prix de l'offre dans la variable double Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK); // écrire dans la variable prix d'achat double OpenPrice=PositionGetDouble(POSITION_PRICE_OPEN); // écrire le prix d'ouverture de la position dans la variable double PositionSL=PositionGetDouble(POSITION_SL); // écrire le niveau de stop loss dans la variable double PositionTP=PositionGetDouble(POSITION_TP); // écrire le niveau du take profit dans la variable if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) // définir le type de position { if(TrailWhileMinus==true || Bid-OpenPrice>_Point*Trail) // ne pas chaluter jusqu'à ce que nous puissions atteindre le seuil de rentabilité avec le premier transfert d'arrêt. { if(Bid-PositionSL>Trail*_Point) //Condition de base pour la nécessité de déplacer le stop loss { //--- écrire des données dans la structure request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Bid-Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // envoyer la demande au serveur } } } else { if(TrailWhileMinus==true || OpenPrice-Ask>_Point*Trail) // ne pas chaluter jusqu'à ce que nous puissions atteindre le seuil de rentabilité avec le premier transfert d'arrêt. { if(PositionSL-Ask>Trail*_Point) //Condition de base pour la nécessité de déplacer le stop loss { //--- écrire des données dans la structure request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Ask+Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // envoyer la demande au serveur } } } } return(0); }
voici ce qu'il en est
Je suppose (probablement non sans raison) qu'il est préférable de passer le résultat en tant que paramètre :)
Sinon, il n'y a aucun moyen de l'analyser. Ce n'est pas bon en quelque sorte...
PS
Je créerais également deux fonctions - TrailingStopBuy et TrailingStopSell
Je suppose (probablement non sans raison) qu'il est préférable de passer le résultat en tant que paramètre :)
Sinon, il n'y a aucun moyen de l'analyser. Ce n'est pas bon en quelque sorte...
PS
Je créerais également deux fonctions - TrailingStopBuy et TrailingStopSell.
Je lui ai donné un exemple, parce qu'il s'est déjà fait la main sur la façon d'écrire une ligne de fuite ordinaire, et je l'ai laissé réfléchir un peu, ce qui fonctionnerait sans erreurs, dans le testeur en principe, et cette conception fonctionne très bien.
Voilà.
sergey1294,
Merci encore, tout fonctionne ! !!
Il y a encore une petite question, comment ajouter un contrôle par numéro magique à la fonction ? J'essaie d'insérer un tel contrôle :
if (OrderGetInteger(ORDER_MAGIC)==EA_Magic) { ..... }..... mais il y a quelque chose qui casse tout le commerce.....
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Un nouvel article Comment créer votre propre Trailing Stop a été publié :
La règle de base du trader : Laisse que le bénéfice croisse et que les pertes tombent ! Cet article considère l'une des techniques de base, permettant de suivre cette règle - déplacer le niveau d’arrêt protecteur (niveau de stop loss) après avoir augmenté le bénéfice de la position, c'est-à-dire - le niveau Trailing Stop. Vous trouverez la procédure étape par étape pour créer une classe pour le trailing stop sur les indicateurs SAR et NRTR. Chacun pourra insérer ce trailing stop dans ses experts ou l'utiliser de manière autonome pour contrôler les positions dans leurs comptes.
Auteur : Dmitry Fedoseev