//+------------------------------------------------------------------+
//| ポジションの決済または逆指値/指値注文削除をチェックする |
//| 入力:なし |
//| 出力:取引操作が処理された場合は 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);
}
|