下载MetaTrader 5

CloseAll

它执行满仓的部分平仓。

virtual bool  CloseAll(
   double    lot    // 手数
   )

参数

lot

[输入] 减仓的手数。

返回值

true 如果交易操作已被执行, 否则 false。

注释

在“单边持仓”模式,使用CExpertTrade::Buy或CExpertTrade::Sell 类函数来平仓。在“锁仓持仓”模式,则使用CTrade::PositionClose 类函数,它也可以用于单边模式下的账户。DeleteOrders()类函数用于删除订单。

实现

//+------------------------------------------------------------------+
//| 平仓并删除订单                                 |
//| 输入:  手数 - 平仓交易量。                                 |
//| OUTPUT: true-if trade operation processed, false otherwise.      |
//| 备注: 无。                                                     |
//+------------------------------------------------------------------+
bool CExpert::CloseAll(double lot)
  {
   bool result;
//--- 检查平仓操作
   if(m_position.PositionType()==POSITION_TYPE_BUY) result=m_trade.Sell(lot,0,0,0);
   else                                     result=m_trade.Buy(lot,0,0,0);
   result|=DeleteOrders();
//---
   return(result);
  }