order_check

Prüfung auf ausreichende Geldmittel zur Durchführung der gewünschten Handelsoperation. Das Prüfungsergebnis wird als Struktur MqlTradeCheckResult zurückgegeben.

order_check(
   request      // request Struktur
   );

Parameter

request

[in] MqlTradeRequest Strukturtyp, die die Handelsaktion definiert. Benötigter unbenannter Parameter. Ein Beispiel für das Ausfüllen einer Anfrage und der Inhalt der Enumeration werden im Folgenden beschrieben.

Rückgabewert

Prüfungsergebnis als Struktur MqlTradeCheckResult. Das Feld request in der Antwort enthält die Struktur einer an order_check() übergebenen Handelsanfrage.

Hinweis

Erfolgreiches Senden einer Anfrage hat nicht zur Folge, dass die angeforderte Handelsoperation erfolgreich ausgeführt wird. Die Funktion order_check ist ähnlich wie OrderCheck.

TRADE_REQUEST_ACTIONS

ID

Beschreibung

TRADE_ACTION_DEAL

Platzieren Sie eine Order für einen sofortigen Deal mit den angegebenen Parametern (setzen Sie eine Marktorder)

TRADE_ACTION_PENDING

Einen Auftrag zur Durchführung eines Deals zu bestimmten Bedingungen erteilen (Pending-Order)

TRADE_ACTION_SLTP

Stop-Loss und Take-Profit offener Positionen ändern

TRADE_ACTION_MODIFY

Parameter des zuvor platzierten Handelsauftrags ändern

TRADE_ACTION_REMOVE

Entfernen Sie zuvor aufgegebene Pending-Orders

TRADE_ACTION_CLOSE_BY

Schließen einer Position durch eine entgegengesetzte

ORDER_TYPE_FILLING

ID

Beschreibung

ORDER_FILLING_FOK

Diese Ausführungspolitik bedeutet, dass ein Auftrag nur im angegebenen Volumen ausgeführt werden kann. Wenn die erforderliche Menge eines Finanzinstruments derzeit nicht auf dem Markt verfügbar ist, wird der Auftrag nicht ausgeführt. Das gewünschte Volumen kann sich aus mehreren verfügbaren Angeboten zusammensetzen.

ORDER_FILLING_IOC

Eine Vereinbarung zur Ausführung eines Deals zum maximal auf dem Markt verfügbaren Volumen innerhalb des in der Order angegebenen Volumens. Wenn die Anfrage nicht vollständig erfüllt werden kann, wird ein Auftrag mit dem verfügbaren Volumen ausgeführt und das verbleibende Volumen wird annulliert.

ORDER_FILLING_RETURN

Diese Politik wird nur für Markt- (ORDER_TYPE_BUY und ORDER_TYPE_SELL), Limit- und Stop-Limit-Orders (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP_LIMIT und ORDER_TYPE_SELL_STOP_LIMIT) und nur für Symbole mit den Modi Markt- oder Börsenausführung verwendet. Bei teilweiser Ausführung wird eine Markt- oder Limitorder mit dem Restvolumen nicht storniert und weiter verarbeitet.

Bei der Aktivierung einer Order vom Typ ORDER_TYPE_BUY_STOP_LIMIT und ORDER_TYPE_SELL_STOP_LIMIT wird ein entsprechender Limitauftrag ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT mit dem Typ ORDER_FILLING_RETURN angelegt.

ORDER_TYPE_TIME

ID

Beschreibung

ORDER_TIME_GTC

Der Auftrag bleibt in der Warteschlange, bis er manuell storniert wird.

ORDER_TIME_DAY

Die Order ist nur während des aktuellen Handelstages aktiv.

ORDER_TIME_SPECIFIED

Der Auftrag ist bis zum angegebenen Datum aktiv

ORDER_TIME_SPECIFIED_DAY

Die Order ist bis 23:59:59 Uhr des angegebenen Tages aktiv. Wenn diese Zeit außerhalb einer Handelssitzung zu liegen scheint, wird der Verfall in der nächstgelegenen Handelszeit verarbeitet.

Beispiel:

import MetaTrader5 as mt5
# Datenanzeige des Pakets von MetaTrader 5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
 
# Verbindung herstellen zum MetaTrader 5 Terminal
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()
 
# Abrufen der Kontowährung
account_currency=mt5.account_info().currency
print("Account сurrency:",account_currency)
 
# Vorbereitung der Struktur request
symbol="USDJPY"
symbol_info = mt5.symbol_info(symbol)
if symbol_info is None:
    print(symbol, "not found, can not call order_check()")
    mt5.shutdown()
    quit()
 
# Wenn das Symbol im MarketWatch nicht verfügbar ist, wird es hinzugefügt
if not symbol_info.visible:
    print(symbol, "is not visible, trying to switch on")
    if not mt5.symbol_select(symbol,True):
        print("symbol_select({}}) failed, exit",symbol)
        mt5.shutdown()
        quit()
 
# Vorbereitung von request
point=mt5.symbol_info(symbol).point
request = {
    "action"mt5.TRADE_ACTION_DEAL,
    "symbol": symbol,
    "volume": 1.0,
    "type"mt5.ORDER_TYPE_BUY,
    "price"mt5.symbol_info_tick(symbol).ask,
    "sl"mt5.symbol_info_tick(symbol).ask-100*point,
    "tp"mt5.symbol_info_tick(symbol).ask+100*point,
    "deviation": 10,
    "magic": 234000,
    "comment""python script",
    "type_time"mt5.ORDER_TIME_GTC,
    "type_filling"mt5.ORDER_FILLING_RETURN,
}
 
# Prüfen und anzeigen des Ergebnisses 'as is'
result = mt5.order_check(request)
print(result);
# Abrufen des Ergebnisses als Liste mit einer Einzeldarstellung der Elemente
result_dict=result._asdict()
for field in result_dict.keys():
    print("   {}={}".format(field,result_dict[field]))
    # falls es die Struktur einer Handelsanfrage ist, zeige es auch Element für Element
    if field=="request":
        traderequest_dict=result_dict[field]._asdict()
        for tradereq_filed in traderequest_dict:
            print("       traderequest: {}={}".format(tradereq_filed,traderequest_dict[tradereq_filed]))
 
# Schließen der Verbindung zum MetaTrader 5 Terminal
mt5.shutdown()
 
 
Ergebnis:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
Account сurrency: USD
   retcode=0
   balance=101300.53
   equity=68319.53
   profit=-32981.0
   margin=51193.67
   margin_free=17125.86
   margin_level=133.45308121101692
   comment=Done
   request=TradeRequest(action=1, magic=234000, order=0, symbol='USDJPY', volume=1.0, ...
       traderequest: action=1
       traderequest: magic=234000
       traderequest: order=0
       traderequest: symbol=USDJPY
       traderequest: volume=1.0
       traderequest: price=108.081
       traderequest: stoplimit=0.0
       traderequest: sl=107.98100000000001
       traderequest: tp=108.181
       traderequest: deviation=10
       traderequest: type=0
       traderequest: type_filling=2
       traderequest: type_time=0
       traderequest: expiration=0
       traderequest: comment=python script
       traderequest: position=0
       traderequest: position_by=0

Siehe auch

order_send, OrderCheck, Trading operation types, Trading request structure, Structure of the trading request check results, Structure of the trading request result