Caractéristiques du langage mql5, subtilités et techniques - page 23
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
Non, vous ne le faites pas. Vous avez juste besoin de savoir comment la dernière position a été fermée (et vous n'avez pas besoin d'aller beaucoup plus loin dans l'historique pour cela - c'est suffisant pour filtrer "vos" transactions) - la connaissance plus loin de la dernière position dans l'historique est plus statistique qu'opérationnelle.
Eh bien, tout cela est fait dans OnTradeTransaction. Seulement dans le trigger publié par fxsaber : J'ajouterais une vérification sur le symbole, le magicien et le trade sur DEAL_ENTRY_OUT
Comment allez-vous contrôler le testeur ?
Je n'ai pas regardé attentivement ce déclencheur, mais je n'ai pas vu de contrôle sur le commerce pour DEAL_ENTRY_OUT. Après tout, c'est cette transaction qui indique la fermeture de la position sur les comptes courants.
Le contrôle n'est pas nécessaire. Le déclencheur ne fonctionnera pas dans le testeur, car le testeur ne génère pas certains événements commerciaux.
Lesquels, par exemple, de cette liste ?
COMMANDE_TRANSACTION_ADDITIONNELLE
Ajoute un nouvel ordre ouvert.
MISE À JOUR DE LA COMMANDE DE TRANSACTION COMMERCIALE
Modification d'un ordre ouvert. Ces modifications comprennent non seulement des changements explicites du côté du terminal client ou du serveur de négociation, mais aussi des modifications de l'état de passation de l'ordre (par exemple, de ORDER_STATE_STARTED à ORDER_STATE_PLACED ou de ORDER_STATE_PLACED à ORDER_STATE_PARTIAL, etc.)
COMMANDE_TRANSACTION_DELETE
Supprime l'ordre de la liste des ordres ouverts. Un ordre peut être supprimé de la liste des ordres ouverts à la suite d'une demande de transaction ou à la suite d'une exécution (fill) et d'un transfert vers l'historique.
TRANSACTION_COMMERCIALE_ADDITIONNELLE
Ajout d'un métier à l'historique. Cette opération est effectuée à la suite de l'exécution de l'ordre ou à la suite des opérations de solde de compte.
MISE À JOUR DES TRANSACTIONS COMMERCIALES
Changement d'un métier dans l'histoire. Il peut arriver qu'une transaction exécutée précédemment soit modifiée sur le serveur. Par exemple, la transaction a été modifiée dans le système de négociation externe (bourse), où elle a été supprimée par le courtier.
TRANSACTION_TRANSACTION_DEAL_DELETE
Suppression de la transaction de l'historique. Il peut arriver qu'une transaction précédemment exécutée soit supprimée sur le serveur. Par exemple, la transaction a été supprimée dans le système de négociation externe (bourse) où elle a été supprimée par le courtier.
AJOUT DE L'HISTORIQUE DES TRANSACTIONS COMMERCIALES
Ajout d'un ordre à l'historique à la suite de son exécution ou de son annulation.
MISE À JOUR DE L'HISTORIQUE DES TRANSACTIONS COMMERCIALES
Modification d'une commande passée dans l'historique des commandes. Ce type est destiné à augmenter la fonctionnalité du côté du serveur commercial.
HISTORIQUE_TRANSACTIONNEL_SUPPRIMER
Suppression d'une commande dans l'historique des commandes. Ce type est destiné à l'extension des fonctionnalités du côté du serveur commercial.
TRADE_TRANSACTION_POSITION
Modification d'une position non liée à l'exécution de la transaction. Ce type de transaction indique que la position a été modifiée du côté du serveur de transactions. Le volume de la position, le prix d'ouverture et les niveaux de Stop Loss et Take Profit peuvent être modifiés. Les informations sur les changements sont transmises à la structure MqlTradeTransaction par le biais du gestionnaire OnTradeTransaction. Un changement de position (ajout, modification ou élimination) résultant d'une transaction ne provoque pas l'occurrence de la transaction TRADE_TRANSACTION_POSITION.
DEMANDE_DE_TRANSACTION
Une notification indiquant qu'une demande de transaction a été traitée par le serveur et que son résultat a été reçu. Pour les transactions de ce type, il est nécessaire d'analyser un seul champ - type (type de transaction) dans la structure MqlTradeTransaction. Les deuxième et troisième paramètres de la fonction OnTradeTransaction (requête et résultat) doivent être analysés pour obtenir des informations supplémentaires.
A moins que l'événement mis en évidence ne soit pas généré. Alors, qui en a besoin ?
Lesquels, par exemple, figurent sur cette liste ?
L'événement commercial est mon terme.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Caractéristiques du langage mql5, subtilités et astuces
fxsaber, 2017.02.28 19:30
Il peut y avoir une position BUY ouverte et un ordre BUY valide. L'exemple ci-dessus est un exemple de code, mais probablement plus facile pour les doigts. Comment se déclenche le TP d'une position ouverte?
L'événement commercial est mon terme.
Il ne s'agit pas d'un événement à mon sens. Ce sont les subtilités de la séquence d'exécution de l'ordre. Pourquoi devrais-je saisir le moment où un ordre de VENTE pour clôturer une position d' ACHAT se trouve dans le terminal en même temps que la position elle-même ?
Il est peut-être malheureux que la séquence des événements ne soit pas observée, mais ... L'essentiel dans le trading n'est-il pas de suivre le flux des événements et d'en mesurer la vitesse ? S'ils ouvrent une position pour moi demain au prix demandé et la ferment hier, mais avec un bénéfice, je ne m'y opposerai pas.
À mon avis, il ne s'agit pas d'un événement. Ce sont les subtilités de la séquence d'ordres. Pourquoi devrais-je saisir le moment où un ordre de VENTE pour clôturer une position d' ACHAT se trouve dans le terminal en même temps que la position elle-même ?
Lisez le titre du fil de discussion.
Qu'est-ce qui va changer ?