簡體   English   中英

關閉來自 MT5 的 position Python API 不工作

[英]Close position from MT5 Python API not working

我正在嘗試從 Python 關閉 MT5 中現有的 position,但 MT5 始終聲稱“不支持的填充模式”。
我嘗試了所有可能的填充模式,但總是得到相同的結果。 同樣,如果我在請求中省略填充模式。 我還嘗試從符號信息中獲取填充模式並在請求中使用它 - 沒有成功。 這發生在真實賬戶上。
這是我的 function,它采用現有的 position 並針對該 position 發送關閉請求:

async def ClosePosition(position):
   if (position.type == mt5.POSITION_TYPE_BUY):
       order_type = mt5.ORDER_TYPE_SELL
       price = mt5.symbol_info_tick(position.symbol).bid
   else:
       order_type = mt5.ORDER_TYPE_BUY
       price = mt5.symbol_info_tick(position.symbol).ask

   request = {
           "action": mt5.TRADE_ACTION_DEAL,
           "symbol": position.symbol,
           "volume": position.volume,
           "type": order_type,
           "position": position.ticket,
           "price": price,
           "deviation": 10,
           "magic": 0,
           "comment": "Closed by Python",
           "type_time": mt5.ORDER_TIME_GTC,
           "type_filling": mt5.ORDER_FILLING_RETURN
       }

   result = mt5.order_send(request)

雜志上是這樣說的:
Trades '#######': failed market buy 0.01 CHFJPY, close #109459760 sell 0.01 CHFJPY 116.807 [Unsupported filling mode]

任何幫助是極大的贊賞。

最終我發現SYMBOL_FILLING_MODE的值與ENUM_ORDER_TYPE_FILLING的值不匹配。 當我將 SYMBOL_FILLING_MODE 轉換為適當的 ENUM_ORDER_TYPE_FILLING 時,它可以工作。
因此,在我的示例中,使用 mt5.ORDER_FILLING_IOC 成功關閉了 position。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM