Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 814

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
Gibt es eine Möglichkeit, diese unauslöschlichen Kontrollkästchen-Neuigkeiten-Objekte davon abzuhalten, meine Objektliste immer und immer wieder zu füllen?
Hier in den Einstellungen entfernen Sie die Nachrichten und laden das Terminal neu
Gibt es eine Möglichkeit, diese unauslöschlichen Kontrollkästchen-Neuigkeiten-Objekte davon abzuhalten, meine Objektliste immer und immer wieder zu füllen?
Hier in den Einstellungen entfernen Sie die News und starten das Terminal neu
Kirill, ich danke Ihnen vielmals. Ansonsten geht mein Experte die Objekte durch - immer wieder.
Ich danke Ihnen.
Ich versuche zu lernen, wie man die Funktion OnTradeTransaction verwendet.
Bei der Verwendung im Testgerät tritt das folgende Problem auf. Ein Auftrag wird eröffnet und daraufhin OnTradeTransaction aufgerufen. Im Moment erhalte ich die Positionsgröße innerhalb von OnTradeTransaction mithilfe der CPositionInfo-Klasse. Alles ist in Ordnung. Dann rufe ich beim gleichen Aufruf eine andere Funktion direkt aus OnTradeTransaction auf und CPositionInfo gibt dort Null zurück, also nicht das, was ich brauche. Ein paar Minuten später versuchte ich, die Positionsgröße in OnTimer zu ermitteln, aber dort war alles in Ordnung, d.h. 1. Natürlich wurde die Stelle in der gesamten Geschichte nicht geschlossen und wieder geöffnet.
Frage. Warum gibt CPositionInfo in OnTradeTransaction das zurück, was es braucht, aber in einer anderen Funktion, die von OnTradeTransaction aufgerufen wird, gibt es 0 anstelle des Positionsvolumens zurück.
Hier sind die Protokolle. (Position eröffnet um 10:30:12 geschlossen um 10:48:53)
Dadurch wird ein Auftrag ausgelöst.
2017.09.22 10:30:12 Auftrag [#3 Kauflimit 1.00 SBRF-3.18 bei 19352] ausgelöst
OnTradeTransaction wird dreimal aufgerufen. CPositionInfo bei jedem Aufruf ist das Positionsvolumen gleich 1. Beim letzten Aufruf von TRADE_TRANSACTION_HISTORY_ADD rufe ich die Funktion auf.
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_DEAL_ADD order=3 order_type=ORDER_TYPE_BUY state=ORDER_STATE_STARTED Price=19352.0 deal=2 deal_type=DEAL_TYPE_BUY Positionsrichtung POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_ORDER_DELETE order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Positionsrichtung POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_HISTORY_ADD order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Positionsrichtung POSITION_TYPE_BUY Volume 1.0
In einer Funktion, die von OnTradeTransaction aufgerufen wird.
2017.09.22 10:32:50 Es gibt eine 0.0 Position auf dem notierten Symbol SBRF-3.18 in Richtung POSITION_TYPE_BUY
Nach einer Weile versuchen, die Lautstärke in OnTimer wieder zu erreichen
2017.09.22 10:40:00 In OnTimer Symbol=SBRF-3.18 Volumen=1.0
Schließt die Position
2017.09.22 10:48:53 Auftrag [#5 Verkaufslimit 1,00 SBRF-3,18 um 19435] ausgelöst
Ich versuche zu lernen, wie man die Funktion OnTradeTransaction verwendet.
Bei der Verwendung im Testgerät tritt das folgende Problem auf. Ein Auftrag wird eröffnet und daraufhin OnTradeTransaction aufgerufen. Im Moment erhalte ich die Positionsgröße innerhalb von OnTradeTransaction mithilfe der CPositionInfo-Klasse. Alles ist in Ordnung. Dann rufe ich beim gleichen Aufruf eine andere Funktion direkt aus OnTradeTransaction auf und dort gibt CPositionInfo Null zurück, also nicht das, was ich brauche. Ein paar Minuten später versuchte ich, die Positionsgröße in OnTimer zu ermitteln, aber dort war alles in Ordnung, d.h. 1. Natürlich wurde die Stelle in der gesamten Geschichte nicht geschlossen und wieder geöffnet.
Hier ist meine Frage. Warum gibt CPositionInfo das zurück, was ich in OnTradeTransaction benötige, aber in einer anderen Funktion, die von OnTradeTransaction aufgerufen wird, gibt es 0 anstelle des Positionsvolumens zurück.
Hier sind die Protokolle. (Position eröffnet um 10:30:12 geschlossen um 10:48:53)
Dadurch wird ein Auftrag ausgelöst.
2017.09.22 10:30:12 Auftrag [#3 Kauflimit 1.00 SBRF-3.18 bei 19352] ausgelöst
OnTradeTransaction wird dreimal aufgerufen. CPositionInfo bei jedem Aufruf ist das Positionsvolumen gleich 1. Beim letzten Aufruf von TRADE_TRANSACTION_HISTORY_ADD rufe ich die Funktion auf.
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_DEAL_ADD order=3 order_type=ORDER_TYPE_BUY state=ORDER_STATE_STARTED Price=19352.0 deal=2 deal_type=DEAL_TYPE_BUY Positionsrichtung POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_ORDER_DELETE order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Positionsrichtung POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_HISTORY_ADD order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Positionsrichtung POSITION_TYPE_BUY Volume 1.0
In einer Funktion, die von OnTradeTransaction aufgerufen wird.
2017.09.22 10:32:50 Es gibt eine 0.0 Position auf dem notierten Symbol SBRF-3.18 in Richtung POSITION_TYPE_BUY
Nach einer Weile versuchen, die Lautstärke in OnTimer wieder zu erreichen
2017.09.22 10:40:00 In OnTimer Symbol=SBRF-3.18 Volumen=1.0
Schließt die Position
2017.09.22 10:48:53 Auftrag [#5 Verkaufslimit 1,00 SBRF-3,18 um 19435] ausgelöst
Und warum CPositionInfo verwenden, wenn es eine MqlTradeTransaction-Struktur mit allen Informationen über Auftrag, Geschäft und Position gibt?
Der Einfachheit halber. Eine kleine Funktion wird von MqlTradeTransaction aufgerufen. Es findet das erforderliche Element durch die Suche nach Elementen der Klasse. Dann wird eine der Klassenfunktionen für dieses Element aufgerufen, die etwas Nützliches tut.
Der Einfachheit halber. Eine kleine Funktion wird von MqlTradeTransaction aufgerufen. Das erforderliche Element wird dort durch die Suche nach Elementen der Klasse gefunden. Für dieses Element wird eine der Klassenfunktionen aufgerufen, die etwas Sinnvolles tut.
Offenbar muss man dafür den gesamten Algorithmus ändern. Das Problem ist sehr unzureichend beschrieben. Wenn Sie einige Klassen benötigen, ohne OnTradeTransaction zu verwenden, brauchen Sie einige Klassen mit OnTradeTransaction nicht. Genau aus diesem Grund heißt es
Forum für Handel, automatisierte Handelssysteme und Strategietests
FAQ von Anfängern MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2017.12.30 09:04
Und warum CPositionInfo verwenden, wenn es eine MqlTradeTransaction-Struktur gibt, in der alle Auftrags-, Geschäfts- und Positionsinformationen enthalten sind?
Während der Ausführung dieser Funktion treten Ereignisse auf, z.B. Handel, Timer, etc.
Ist es möglich zu wissen, dass diese Ereignisse eingetreten sind, ohne die Ausführung der Funktion Abc() zu beenden?