[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 155
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
dans la définition d'une tendance ?
Dans un changement de tendance sur une période de temps... Voir https://www.mql5.com/ru/forum/131277/page148 et https://www.mql5.com/ru/forum/131277/page149
Pouvez-vous me dire pourquoi OrderSelect renvoie VRAI même si la commande avec ce ticket n'existe pas (elle a été supprimée) ?
dans un changement de tendance sur un tronçon de temps...
S'il vous plaît dites-moi si Tp et Slossa fonction fonctionne ici
if (total > 0) AveragePrice = NormalizeDouble(AveragePrice / Count, Digits) ;
if (NewOrdersPlaced) {
for (cnt = OrdersTotal() - 1 ; cnt >= 0 ; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue ;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) {
PriceTarget = Prix moyen + TakeProfit * Point ;
BuyTarget = PrixTarget ;
Stopper = Prix moyen - Stoploss * Point ;
flag = TRUE ;
}
}
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_SELL) {
PriceTarget = AveragePrice - TakeProfit * Point ;
SellTarget = PriceTarget ;
Stopper = AveragePrice + Stoploss * Point ;
flag = TRUE ;
il a bien compilé pour moi
Désolé, l'indicateur fonctionne - c'est comme ça qu'il était à l'origine, et l'erreur est dans le fichier tcht - il ne compile pas.
Puis-je utiliser init pour effectuer des calculs pour le tampon de l'indicateur ?
Je voulais recalculer en init toutes les barres sauf la barre zéro et en start la barre zéro - elle ne compte pas...
Pouvez-vous me dire pourquoi OrderSelect renvoie VRAI même s'il n'y a pas de commande avec un tel ticket (il a été supprimé) ?
Avez-vous bien lu la référence de la fonction ?
Relisons-le :
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Le paramètre pool est ignoré si la commande est sélectionnée par le numéro de ticket. Le numéro de billet est un identifiant unique pour la commande. Pour déterminer dans quelle liste un ordre est sélectionné, nous devons analyser son heure de clôture. Si l'heure de clôture de l'ordre est 0, alors l'ordre est ouvert ou en attente et est pris dans la liste des positions ouvertes du terminal. Une position ouverte peut être distinguée d'un ordre en attente par son type. Si l'heure de clôture n'est pas égale à 0, alors l'ordre est clôturé ou en attente et a été sélectionné dans l'historique du terminal. La distinction entre un ordre fermé et un ordre en attente supprimé peut également être faite par type d'ordre.
SELECT_BY_POS - le paramètre index contient le numéro d'index de la position dans la liste,
SELECT_BY_TICKET - le paramètre index contient le numéro du billet.
MODE_TRADES (par défaut) - l'ordre est sélectionné parmi les ordres ouverts et en attente,
MODE_HISTORY - l'ordre est sélectionné parmi les ordres fermés et supprimés.
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Celui-là :
Le paramètre pool est ignoré si la commande est sélectionnée par le numéro de ticket. Le numéro de billet est l'identifiant unique de la commande. Pour déterminer dans quelle liste un ordre est sélectionné, il faut analyser son heure de clôture. Si l'heure de clôture de l'ordre est 0, alors l'ordre est ouvert ou en attente et est pris dans laliste des positions ouvertes du terminal.
Vous faites quoi ?
J'ai indiqué en rouge le paramètre pool, qui est ignoré lorsque l'on choisit par ticket et qu'un ordre est pris dans n'importe quelle liste (ouverte ou fermée) de positions du terminal. C'est pourquoi il renvoie la vérité. Après tout, un tel ticket existe et un ordre est sélectionné, mais dans la liste des ordres fermés...
Nous devrions le faire de cette façon :
... ou :
... ...ou :
Je pense l'avoir très bien expliqué... :)
artmedia70
Merci pour cette réponse si détaillée et complète. Vraiment aussi clair que possible :) THX ! !!
artmedia70
Merci pour cette réponse détaillée. Aussi clair que possible :) THX ! !!
:) Merci. Vous êtes les bienvenus.
Je voudrais mettre en garde contre certaines "insidiosités" de la sélection des postes ouverts par leur ticket. Le fait est qu'à la fin d'une journée de négociation, lorsqu'une position est reportée au jour suivant, la société de courtage rouvre l'ordre. C'est-à-dire que la position actuelle est fermée et une autre position est ouverte avec le même volume, mais avec un nouveau ticket incluant le swap. Par conséquent, votre Conseiller Expert doit garder la trace des ordres ré-ouverts et prendre en compte leurs nouveaux tickers, sinon tout va "couler" - l'ordre avec l'ancien ticker apparaîtra dans la liste des ordres fermés, et vous ne serez pas en mesure d'ouvrir une position existante déplacée vers le nouveau jour de négociation en utilisant l'ancien ticker. Les positions partiellement fermées connaîtront le même sort - un nouveau ticket leur sera également attribué.
Par conséquent, tenez un registre strict de tous les ordres d'EA et gardez une trace de tous ces changements "insidieux" dans le temps.
Je voudrais mettre en garde contre une certaine "insidiosité" de la sélection des postes ouverts par leur ticket. Le fait est qu'à la fin de la journée de négociation, lorsqu'une position est transférée au jour suivant, le DC rouvre l'ordre.
Je ne sais pas si c'est vrai pour certaines sociétés de courtage, mais la plupart d'entre elles ne font pas cette merde.
N'est-ce pas une règle de "bonnes manières" que de considérer également ce comportement du DC ? Après tout... Ouais, c'est pas grave... J'essaie juste de considérer tout, enfin... ou ce dont je suis conscient.
Il faut être prudent, hein ? ;)