设为首页 收藏本站 切换语言
| 发表于 2025-7-27 03:27:18 | 显示全部楼层 |复制链接
  1. import MetaTrader5 as mt5
  2. if not mt5.initialize():
  3.     print("MT5初始化失败")
  4.     quit()
  5. positions = mt5.positions_get()
  6. total_volume = sum(pos.volume for pos in positions)
  7. close_volume = total_volume * 0.5
  8. for pos in positions:
  9.     if close_volume <= 0:
  10.         break
  11.    
  12.     if pos.volume >= close_volume:
  13.         request = {
  14.             "action": mt5.TRADE_ACTION_DEAL,
  15.             "position": pos.ticket,
  16.             "symbol": pos.symbol,
  17.             "volume": close_volume,
  18.             "type": mt5.ORDER_TYPE_SELL if pos.type == mt5.ORDER_TYPE_BUY else mt5.ORDER_TYPE_BUY,
  19.             "price": mt5.symbol_info_tick(pos.symbol).ask if pos.type == mt5.ORDER_TYPE_BUY else mt5.symbol_info_tick(pos.symbol).bid,
  20.             "deviation": 10,
  21.         }
  22.         mt5.order_send(request)
  23.         break
  24.     else:
  25.         request = {
  26.             "action": mt5.TRADE_ACTION_DEAL,
  27.             "position": pos.ticket,
  28.             "symbol": pos.symbol,
  29.             "volume": pos.volume,
  30.             "type": mt5.ORDER_TYPE_SELL if pos.type == mt5.ORDER_TYPE_BUY else mt5.ORDER_TYPE_BUY,
  31.             "price": mt5.symbol_info_tick(pos.symbol).ask if pos.type == mt5.ORDER_TYPE_BUY else mt5.symbol_info_tick(pos.symbol).bid,
  32.             "deviation": 10,
  33.         }
  34.         mt5.order_send(request)
  35.         close_volume -= pos.volume
  36. mt5.shutdown()
复制代码
举报

评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)