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
Vous pouvez ne vous souvenir de rien du tout
{
if ((Trans.type == TRADE_TRANSACTION_DEAL_ADD) && (Trans.position > 0) && !PositionSelectByTicket(Trans.position))
Print("Position #" + (string)Trans.position + " - triggered SL/TP.");
}
Mais la conversation semble s ' élargir un peu plus.
Tu es très inattentif, ce n'est pas moi qui ailancé le sujet.
Vous devriez aussi me montrer un code comme celui-ci :
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
}
Si vous ne l'aimez pas, vous pouvez utiliser Joba ! C'est vrai ?
J'ai passé suffisamment de temps pour répondre à votre question.
Si votre question n'était pas aussi "abstraite", la réponse serait peut-être plus précise.
A savoir :
1. FORTS ou FOREX
2. Quel type utilisez-vous : filet ou hedgie ?
3. si d'autres commandes sont utilisées pendant la durée de vie du poste
La question est la même que la réponse.
Je suis d'accord pour que cela fonctionne (dans le cas d'un remplissage complet).
{
if ((Trans.type == TRADE_TRANSACTION_DEAL_ADD) && (Trans.position > 0) && !PositionSelectByTicket(Trans.position))
Print("Position #" + (string)Trans.position + " - triggered SL/TP.");
}
Mais la conversation semble s ' élargir un peu plus.
Je ne me souviens pas que le volume puisse être réglé pour ST/TP.
Si ce n'est pas le cas (je vais vérifier maintenant), la position fermera PLEIN ou SL ou TP.
Je ne me souviens pas d'avoir attendu que ST/TP règle le volume, si ce n'est pas le cas,
alors la position fermera COMPLÈTEMENT soit le SL ou le TP.
Les liquidités ne sont peut-être pas suffisantes.
Oui, et le Courtier peut couper le courant :)....
Prenez un instrument à faible liquidité et c'est tout.
C'est pourquoi j'ai recommandé l'utilisation des ordres en attente.
Ajouté par
Cela dépend beaucoup du marché et de l'instrument...
Pour identifier avec précision l'ordre auquel il a été répondu dans l'événement OnTradeTransaction, tous les événements autres que celui de la première commande sont signés par un ticket.
Le premier événement est signé par le ticket et le request_id. Le request_id est obtenu par l'utilisateur juste après la soumission de la commande à partir de la fonction OrderSendAsinc. C'est ainsi qu'une itération spécifique de OrderSendAsinc est liée aux résultats obtenus dans OnTradeTransaction.
Le ticket dans OrderSendAsync n'existe peut-être même pas, et il est fort probable qu'il n'existera pas si nous envoyons des commandes à cent par seconde (retcode 10008 au mieux, et c'est tout).
Le ticket dans OrderSendAsync peut être ou ne pas être là et très probablement ne le sera pas si les commandes sont tirées à quelques milliers d'unités par seconde (retcode 10008 au mieux et tout).
Enfin, pas dix, juste 30 par seconde sur une connexion standard.
Si vous l'avez écrit correctement, la ou les commandes seront certainement présentes.
Au lieu d'analyser les événements, vous devez analyser l'environnement commercial et ce n'est que si l'environnement commercial a changé que vous devez prendre les décisions nécessaires. OnTransaction ne peut être utilisé que dans des cas très limités, et il est généralement préférable de s'en passer dans votre travail. Regardez MetaTrader 4, il n'a pas OnTransaction et tout le monde s'en passe.
Je suis d'accord avec cela. Mais malheureusement dans MT5, contrairement à MT4, l'environnement de trading peut ne pas correspondre à la réalité. Par exemple, lorsqu'un ordre en attente est exécuté pendant plusieurs millisecondes, il peut être introuvable. Et même OnTradeTransaction n'aidera pas ici.