Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ja, das stimmt in etwa. Ich habe es nur noch nicht auf diese Weise getestet.
Versuchen Sie es...
Hinzugefügt von
if (trans.order != my_order_ticket)
{
if(trans.symbol==Symbol())
{
if(проверяем магик)
{
//Сработал SL или TP
}
}
}
break;
Was ist an dieser Methode falsch?
if (trans.order != my_order_ticket)
{
//Сработал SL или TP
}
break;
Denn die letzten bekannten SL- und TP-Positionen stimmen möglicherweise nicht mit dem Abschlusspreis überein und es gibt nichts, womit man sie vergleichen könnte.
Und Sie teilen Ihre Codes nicht gerne, aber Sie sehen sich die Codes anderer Leute mit großem Vergnügen an...
Dies wird nicht immer funktionieren:
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");
}
}
}
Probieren Sie es aus...
Was ist an dieser Methode falsch?
Sie müssenmy_order_ticket behalten
Wissen Sie überhaupt, wovon Sie sprechen?
my_order_ticket - diese Bestellung hat einen Platz zum Leben, wenn Sie
und Sie sind verpflichtet, sie einzuhalten.
Sie müssenmy_order_ticket speichern
Ich werde es mal ausprobieren. Danke. (lacht) Ich bin im Moment mit anderen Aufgaben beschäftigt.
Und nicht nur das.
Ja, es wird tatsächlich vorgeschlagen, die tatsächliche Umgebung selbst zu pflegen und zu speichern und sie mit dem zu vergleichen, was OnTradeTransaction erzeugt.
Dies ist keine Lösung.
Ja, es wird tatsächlich vorgeschlagen, die tatsächliche Umgebung selbst zu pflegen und zu speichern und sie mit dem zu vergleichen, was OnTradeTransaction erzeugt.
Dies ist keine Lösung.
Du verfolgst das Thema einfach nicht genau. :)
Der ursprüngliche Themenstarter schrieb:
"Woher weiß ich beiOnTradeTransaction(), dass SL/TP ausgelöst hat? "
Was sollte die Lösung sein?
Sie können sich nichts merken und nichts überprüfen, außer der Position selbst, vorausgesetzt, dass
Sie haben keine anderen Aufträge ausgeführt
if (!PositionSelect(Symbol())
{
//Сработал SL или TP
}
break;
Du verfolgst das Thema einfach nicht genau. :)
Der ursprüngliche Themenstarter schrieb:
Sie sind derjenige, der eher unaufmerksam ist, ich bin nichtder Themenstarter.
Sie sollten auch Code wie diesen anzeigen:
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
}
Tja, was soll's - wer's braucht, macht's selbst fertig, mag's nicht - es gibt einen Joba! Ist das so?