Ja, in der Regel gibt es eine solche Transaktion pro Handel (unabhängig davon, ob ein Auftrag ausgelöst oder eine Position geschlossen wird). Aber hier habe ich zwei gesehen.
Auch hier konnten die Transaktionen nicht in eine Warteschlange gestellt werden, da der Handel nicht sehr häufig ist.
1. Stop-Aufträge sollten nicht beim Eintreffen einer Transaktion, sondern bei der Auftragserteilung eröffnet werden. Das heißt, die gewünschte Planstelle ist in der Planstellenliste erschienen.
2. Bei der Platzierung einer Stop-Order sollte man sich zunächst vergewissern, dass es überhaupt keine Stop-Order gibt.
Ich habe noch nicht verstanden, warum zwei identische (sind es dieselben?) Transaktionen erscheinen. Wir müssen uns alle Parameter der eingehenden Transaktionen ansehen, nicht nur ihre Art.
Geben Sie uns Ihr Codebeispiel - Eröffnung einer Position und OnTradeTransaction. Das wird uns helfen, die Dinge schneller zu klären.
1. Stop-Aufträge sollten nicht beim Eintreffen einer Transaktion, sondern bei der Auftragserteilung eröffnet werden. Das heißt, die gewünschte Planstelle ist in der Planstellenliste erschienen.
2. Bei der Platzierung einer Stop-Order sollte man sich zunächst vergewissern, dass es überhaupt keine Stop-Order gibt.
Ich habe noch nicht verstanden, warum zwei identische (sind es dieselben?) Transaktionen erscheinen. Wir müssen uns alle Parameter der eingehenden Transaktionen ansehen, nicht nur ihre Art.
Geben Sie uns Ihr Codebeispiel - Eröffnung einer Position und OnTradeTransaction. Das wird uns helfen, die Dinge schneller zu klären.
1. Wenn Stop-Aufträge bei der Positionseröffnung geöffnet werden, kann es sein, dass der Stop-Auftrag zuerst ausgelöst wird und nicht der "Hauptauftrag".
2. Ja, das ist mein Problem, so werde ich es lösen, wenn das, was ich beschrieben habe, kein Fehler ist.
Dies wird ein langes Beispiel sein. Ich werde Ihnen einen EA in SD schicken.
1. Wenn Stop-Aufträge bei der Auftragserteilung geöffnet werden, wird möglicherweise nicht zuerst der "Hauptauftrag", sondern der Stop-Auftrag ausgelöst.
Es besteht die Gefahr, dass Sie die OnTradeTransaction-Verarbeitung sehr lange nicht verlassen können - gerade verarbeitet, und die nächste Transaktion, die Sie gerade ausgelöst haben, steht schon an
Ich zum Beispiel habe, den Ausdrucken nach zu urteilen, keine Ereignisverdopplung.
Hier ist ein Protokoll von einer 15-minütigen Sitzung wie der Ihren.
Ich habe Ihre Option ausprobiert. Wie ich bereits sagte, ist der Fehler "fließend". Es ist nicht immer möglich, sie zu wiederholen. Und ich habe das Protokoll von der M5.
Aus den Protokollen geht hervor, dass es sich um einen Fehler handelt:
RH 022:20:07.605 Trade 2015.10.0113:20:00 sell limit 1.00 RTS-12.15 at 79210 (79200 / 79300 / 79200)
JM 022:20:07.605 Trade 2015.10.0113:20:00 order [#15 sell limit 1.00 RTS-12.15 at 79210] triggered
HQ 022:20:07.605 Trades 2015.10.0113:20:00 deal #10 sell 1.00 RTS-12.15 at 79210 done (based on order #15)
IP 022:20:07.605 Trade 2015.10.0113:20:00 deal performed [#10 sell 1.00 RTS-12.15 at 79210]
OD 022:20:07.605 Trade 2015.10.0113:20:00 order performed sell 1.00 at 79210 [#15 sell limit 1.00 RTS-12.15 at 79210]
ND 022:20:20.044 Expert_0311 (RTS-12.15,M5) 2015.10.0113:20:00OnTradeTransaction: TRADE_TRANSACTION_DEAL_ADD deal 10 order 15 order type ORDER_TYPE_BUY deal type DEAL_TYPE_SELL price 79210
JM 022:20:20.044 Trade 2015.10.0113:20:00 buy limit 1.00 RTS-12.15 at 79010 (79200 / 79300 / 79200)
OR 022:20:20.044 Trade 2015.10.0113:20:00 buy stop 1.00 RTS-12.15 at 79410 (79200 / 79300 / 79200)
PG 022:20:20.044 Expert_0311 (RTS-12.15,M5) 2015.10.0113:20:00OnTradeTransaction: TRADE_TRANSACTION_DEAL_ADD deal 10 order 15 order type ORDER_TYPE_BUY deal type DEAL_TYPE_SELL price 79210
DH 022:20:20.044 Trade 2015.10.0113:20:00 buy limit 1.00 RTS-12.15 at 79010 (79200 / 79300 / 79200)
QM 022:20:20.044 Trade 2015.10.0113:20:00 buy stop 1.00 RTS-12.15 at 79410 (79200 / 79300 / 79200)
Transaktionen sind Klone. Das ist genau dasselbe. Auf OHLC M1 - nichts dergleichen.
Und wo wir gerade beim Thema sind. Nächste Frage. Aus den Protokollen geht hervor, dass es sich bei dem Auftrag, der den Handel einleitet, um ein Verkaufslimit handelt. Wenn wir jedoch die Auftragsart von der Funktion OnTradeTransaction() abrufen, erhalten wir ORDER_TYPE_BUY. Wie das? Ja, wenn wir genauer hinschauen, ist jeder auslösende Auftrag im Testgerät, wenn er in OnTradeTransaction verarbeitet wird, ORDER_TYPE_BUY. Hier liegt eindeutig ein Fehler vor.
Ja, in der Regel gibt es eine solche Transaktion pro Handel (unabhängig davon, ob ein Auftrag ausgelöst oder eine Position geschlossen wird). Aber hier habe ich zwei gesehen.
Auch hier konnten die Transaktionen nicht in eine Warteschlange gestellt werden, da der Handel nicht sehr häufig ist.
Nur für den Fall, dass ein Stück mit einem früheren Handel(Schließung einer Position) + Löschung von zwei Aufträgen:
Sie haben einen Fehler in der Logik.
1. Stop-Aufträge sollten nicht beim Eintreffen einer Transaktion, sondern bei der Auftragserteilung eröffnet werden. Das heißt, die gewünschte Planstelle ist in der Planstellenliste erschienen.
2. Bei der Platzierung einer Stop-Order sollte man sich zunächst vergewissern, dass es überhaupt keine Stop-Order gibt.
Ich habe noch nicht verstanden, warum zwei identische (sind es dieselben?) Transaktionen erscheinen. Wir müssen uns alle Parameter der eingehenden Transaktionen ansehen, nicht nur ihre Art.
Geben Sie uns Ihr Codebeispiel - Eröffnung einer Position und OnTradeTransaction. Das wird uns helfen, die Dinge schneller zu klären.
Sie haben einen Fehler in der Logik.
1. Stop-Aufträge sollten nicht beim Eintreffen einer Transaktion, sondern bei der Auftragserteilung eröffnet werden. Das heißt, die gewünschte Planstelle ist in der Planstellenliste erschienen.
2. Bei der Platzierung einer Stop-Order sollte man sich zunächst vergewissern, dass es überhaupt keine Stop-Order gibt.
Ich habe noch nicht verstanden, warum zwei identische (sind es dieselben?) Transaktionen erscheinen. Wir müssen uns alle Parameter der eingehenden Transaktionen ansehen, nicht nur ihre Art.
Geben Sie uns Ihr Codebeispiel - Eröffnung einer Position und OnTradeTransaction. Das wird uns helfen, die Dinge schneller zu klären.
1. Wenn Stop-Aufträge bei der Positionseröffnung geöffnet werden, kann es sein, dass der Stop-Auftrag zuerst ausgelöst wird und nicht der "Hauptauftrag".
2. Ja, das ist mein Problem, so werde ich es lösen, wenn das, was ich beschrieben habe, kein Fehler ist.
Dies wird ein langes Beispiel sein. Ich werde Ihnen einen EA in SD schicken.
Anwendung#1348574
1. Wenn Stop-Aufträge bei der Auftragserteilung geöffnet werden, wird möglicherweise nicht zuerst der "Hauptauftrag", sondern der Stop-Auftrag ausgelöst.
Wie ist das möglich?
Handeln Sie zufällig über OnTradeTransaction?
2. Ja, das ist mein Problem, und so werde ich es lösen, wenn das, was ich beschrieben habe, kein Fehler ist.
Dies wird ein langes Beispiel sein. Ich werde Ihnen einen EA in SD schicken.
Wozu dient das lange Beispiel?
Eröffnung einer Stelle
OnTradeTransaction
Haltestellen
Anfrage#1348574
Ok
Wie war das?
Und Sie führen nicht zufällig Handelsoperationen von OnTradeTransaction aus?
Warum das lange Beispiel?
Öffnung der Position
OnTradeTransaction
Einstellung der Anschläge
Ok
Ja, von dort? Gibt es Einschränkungen?
Mehr. Im Simulationsmodus OHLC M1 ist alles in Ordnung.
Ja, von dort? Gibt es Einschränkungen?
Die Einschränkungen sind rein ereignisbezogen
Es besteht die Gefahr, dass Sie die OnTradeTransaction-Verarbeitung sehr lange nicht verlassen können - gerade verarbeitet, und die nächste Transaktion, die Sie gerade ausgelöst haben, steht schon an
Versuchen Sie es stattdessen mit einem einfachen Druck
Machen Sie diesen Druck
Und schau.
Für mich zum Beispiel gibt es nach den Drucken zu urteilen keine Verdoppelung von Ereignissen
Hier ist das Protokoll von 15 Minuten, wie Sie
Versuchen Sie anstelle eines einfachen Drucks
Machen Sie einen Abdruck wie diesen.
Und sehen Sie selbst.
Ich zum Beispiel habe, den Ausdrucken nach zu urteilen, keine Ereignisverdopplung.
Hier ist ein Protokoll von einer 15-minütigen Sitzung wie der Ihren.
Ich habe Ihre Option ausprobiert. Wie ich bereits sagte, ist der Fehler "fließend". Es ist nicht immer möglich, sie zu wiederholen. Und ich habe das Protokoll von der M5.
Aus den Protokollen geht hervor, dass es sich um einen Fehler handelt:
Transaktionen sind Klone. Das ist genau dasselbe. Auf OHLC M1 - nichts dergleichen.