OnTradeTransaction - page 5 123456789 Nouveau commentaire prostotrader 2016.12.04 22:00 #41 Anatoli Kazharski: Oui, c'est à peu près ça. Je ne l'ai pas encore testé de cette façon.Essayez-le...Ajouté parcase TRADE_TRANSACTION_DEAL_ADD: if (trans.order != my_order_ticket) { if(trans.symbol==Symbol()) { if(проверяем магик) { //Сработал SL или TP } } }break; Andrey Dik 2016.12.04 22:02 #42 prostotrader: Quel est le problème de cette méthode ?case TRADE_TRANSACTION_DEAL_ADD: if (trans.order != my_order_ticket) { //Сработал SL или TP }break;Parce que les dernières positions SL et TP connues peuvent ne pas coïncider avec le prix de la transaction et qu'il n'y aura rien à quoi le comparer. Et vous n'aimez pas partager vos codes, mais vous regardez ceux des autres avec grand plaisir... Cela ne fonctionnera pas toujours :int G_LastTicket = 0; //Последний известный тикетdouble G_LastSLlevel = 0.0; //Последний известный уровень SLdouble G_LastTPlevel = 0.0; //Последний известный уровень TP//——————————————————————————————————————————————————————————————————————————————void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции const MqlTradeRequest &request, // структура запроса const MqlTradeResult &result) // структура ответа{ if(trans.type == TRADE_TRANSACTION_DEAL_ADD) { if(PositionsAny (G_Symbol)) { G_LastSLlevel = GetSLlevel (G_Symbol); G_LastTPlevel = GetTPlevel (G_Symbol); Print ("SLlevel: " + G_LastSLlevel); Print ("TPlevel: " + G_LastTPlevel); } if(trans.deal != G_LastTicket) { if(trans.price == G_LastSLlevel) Print ("Сработал SL"); if(trans.price == G_LastTPlevel) Print ("Сработал TP"); } }} OnTradeTransaction Erreurs, bugs, questions Comment travailler correctement dans Anatoli Kazharski 2016.12.04 22:02 #43 prostotrader: Essayez-le... Je vais essayer un jour, c'est sûr. Je vais essayer un jour. Merci. Je suis occupé par d'autres tâches en ce moment. fxsaber 2016.12.04 22:04 #44 prostotrader: Quel est le problème de cette méthode ? Devrait stockermon_bon_de_commande prostotrader 2016.12.04 22:05 #45 fxsaber: Vous devez gardermon ticket de commande.Est-ce que tu sais au moins de quoi tu parles ?my_order_ticket - cette commande a un endroit où vivre si vous avez et vous êtes obligé de les garder. Andrey Dik 2016.12.04 22:06 #46 fxsaber: Vous devez stockermon ticket_de_commandePas seulement ça. prostotrader 2016.12.04 22:08 #47 Anatoli Kazharski: Je vais essayer un de ces jours. Merci. (gloussements) Je suis occupé par d'autres tâches en ce moment. Bonne chance avec le code ! fxsaber 2016.12.04 22:18 #48 Andrey Dik: Pas seulement ça.Oui, il est en fait proposé de maintenir et de stocker l'environnement réel lui-même, en le comparant à ce que produit OnTradeTransaction.Ce n'est pas une solution. prostotrader 2016.12.04 22:25 #49 fxsaber: Oui, il est en fait proposé de maintenir et de stocker l'environnement réel lui-même, en le comparant à ce que produit OnTradeTransaction.Ce n'est pas une solution.Vous ne suivez pas le sujet de près. :)L'auteur du sujet original a écrit :"Comment puis-je savoir dansOnTradeTransaction() que le SL/TP s'est déclenché ? " Quelle devrait être la solution ?Vous ne pouvez rien retenir ou vérifier, sauf la position elle-même, à condition queVous n'avez pas opéré d'autres commandescase TRADE_TRANSACTION_DEAL_ADD: if (!PositionSelect(Symbol()) { //Сработал SL или TP }break; Erreurs, bugs, questions L'évaluation des probabilités est Toute question de débutant, Andrey Dik 2016.12.04 22:30 #50 prostotrader: Vous ne suivez pas le sujet de près. :)L'auteur du sujet original a écrit :C'est vous qui êtes plutôt inattentif, je ne suis pasl'initiateur du sujet.Vous devriez également montrer un code comme celui-ci ://——————————————————————————————————————————————————————————————————————————————void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции const MqlTradeRequest &request, // структура запроса const MqlTradeResult &result) // структура ответа{ } Eh bien, qu'est-ce qui ne va pas - qui en a besoin, le termine lui-même, ne l'aime pas - il y a un joba ! C'est vrai ? OnTradeTransaction F Formule de marché. 123456789 Nouveau commentaire
Oui, c'est à peu près ça. Je ne l'ai pas encore testé de cette façon.
Essayez-le...
Ajouté par
if (trans.order != my_order_ticket)
{
if(trans.symbol==Symbol())
{
if(проверяем магик)
{
//Сработал SL или TP
}
}
}
break;
Quel est le problème de cette méthode ?
if (trans.order != my_order_ticket)
{
//Сработал SL или TP
}
break;
Parce que les dernières positions SL et TP connues peuvent ne pas coïncider avec le prix de la transaction et qu'il n'y aura rien à quoi le comparer.
Et vous n'aimez pas partager vos codes, mais vous regardez ceux des autres avec grand plaisir...
Cela ne fonctionnera pas toujours :
double G_LastSLlevel = 0.0; //Последний известный уровень SL
double G_LastTPlevel = 0.0; //Последний известный уровень TP
//——————————————————————————————————————————————————————————————————————————————
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
if(trans.type == TRADE_TRANSACTION_DEAL_ADD)
{
if(PositionsAny (G_Symbol))
{
G_LastSLlevel = GetSLlevel (G_Symbol);
G_LastTPlevel = GetTPlevel (G_Symbol);
Print ("SLlevel: " + G_LastSLlevel);
Print ("TPlevel: " + G_LastTPlevel);
}
if(trans.deal != G_LastTicket)
{
if(trans.price == G_LastSLlevel)
Print ("Сработал SL");
if(trans.price == G_LastTPlevel)
Print ("Сработал TP");
}
}
}
Essayez-le...
Quel est le problème de cette méthode ?
Vous devez gardermon ticket de commande.
Est-ce que tu sais au moins de quoi tu parles ?
my_order_ticket - cette commande a un endroit où vivre si vous avez
et vous êtes obligé de les garder.
Vous devez stockermon ticket_de_commande
Je vais essayer un de ces jours. Merci. (gloussements) Je suis occupé par d'autres tâches en ce moment.
Pas seulement ça.
Oui, il est en fait proposé de maintenir et de stocker l'environnement réel lui-même, en le comparant à ce que produit OnTradeTransaction.
Ce n'est pas une solution.
Oui, il est en fait proposé de maintenir et de stocker l'environnement réel lui-même, en le comparant à ce que produit OnTradeTransaction.
Ce n'est pas une solution.
Vous ne suivez pas le sujet de près. :)
L'auteur du sujet original a écrit :
"Comment puis-je savoir dansOnTradeTransaction() que le SL/TP s'est déclenché ? "
Quelle devrait être la solution ?
Vous ne pouvez rien retenir ou vérifier, sauf la position elle-même, à condition que
Vous n'avez pas opéré d'autres commandes
if (!PositionSelect(Symbol())
{
//Сработал SL или TP
}
break;
Vous ne suivez pas le sujet de près. :)
L'auteur du sujet original a écrit :
C'est vous qui êtes plutôt inattentif, je ne suis pasl'initiateur du sujet.
Vous devriez également montrer un code comme celui-ci :
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
}
Eh bien, qu'est-ce qui ne va pas - qui en a besoin, le termine lui-même, ne l'aime pas - il y a un joba ! C'est vrai ?