CheckClose
CheckClose
检查平仓条件。
virtual bool CheckClose()返回值
true 如果交易操作已被执行, 否则 false。
注释
- 它检查智能交易的爆仓条件 (资金管理对象的 CheckClose() 方法)。如果条件满足, 它平仓且删除所有订单 (CloseAll(…)) 并退出。
- 它检查多头和空头的平仓条件 (CheckCloseLong() 或 CheckCloseShort() methods) 且当仓位已平时, 删除所有订单 (DeleteOrders() 方法)。
实现
//+------------------------------------------------------------------+
//| 检查平仓或挂单删除 |
//| 输入: 无。 |
//| 输出: true-如果交易操作处理完毕, 否则 false。 |
//| 备注: 无。 |
//+------------------------------------------------------------------+
bool CExpert::CheckClose()
{
double lot;
//--- 在调用之前仓位必须已被选择
if((lot=m_money.CheckClose(GetPointer(m_position)))!=0.0)
return(CloseAll(lot));
//--- 检查持仓类型
if(m_position.PositionType()==POSITION_TYPE_BUY)
{
//--- 检查平多头持仓 / 删除多头挂单的可能性
if(CheckCloseLong())
{
DeleteOrders();
return(true);
}
}
else
{
//--- 检查平空头持仓 / 删除空头挂单的可能性
if(CheckCloseShort())
{
DeleteOrders();
return(true);
}
}
//--- 返回无操作
return(false);
}