CloseAll

部分的または完全なポジションの決済を行います。

virtual bool  CloseAll(
  double   lot   // ロット
  )

パラメータ

lot

[in] ポジション減少に使用されるロット数

戻り値

取引操作が実行された場合は true、それ以外の場合は false

注意事項

「ネッティング」モードでは、ポジションはCExpertTrade::BuyまたはCExpertTrade::Sellメソッドを用いて決済されます。「ヘッジ」モードでは、CTrade:: PositionCloseメソッドが使われ、これはネッティングモードを持つ口座でも使用可能です。DeleteOrders() メソッドは、注文を削除するために使用されます。

実装

//+------------------------------------------------------------------+
//| ポジション決済と注文削除                                               |
//| 入力:決済ボリューム(ロット単位)                                          |
//| 出力:取引操作が処理された場合は true、 それ以外の場合は false              |
//| メモ:なし                                                           |
//+------------------------------------------------------------------+
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);
 }