Position Close

 

I want to Close a Position by Select by PositionSelect() . this code does not close position. Pleas help me.


MqlTradeRequest request;

MqlTradeResult result;

if(PositionSelect(_Symbol))

{  

   request.action = TRADE_ACTION_CLOSE_BY;

   request.type = ORDER_TYPE_CLOSE_BY;

   request.symbol = _Symbol;

   request.volume = PositionGetDouble(POSITION_VOLUME);

   

   OrderSend(request,result);

   }
Documentation on MQL5: Constants, Enumerations and Structures / Data Structures / Trade Request Structure
Documentation on MQL5: Constants, Enumerations and Structures / Data Structures / Trade Request Structure
  • www.mql5.com
Trade Request Structure - Data Structures - Constants, Enumerations and Structures - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Farhad1:

I want to Close a Position by Select by PositionSelect() . this code does not close position. Pleas help me.


Code: Close Positions Current Symbol:

//+------------------------------------------------------------------+
//|                               Close Positions Current Symbol.mq5 |
//|                              Copyright © 2020, Vladimir Karputov |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2020, Vladimir Karputov"
#property version   "1.000"
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
CPositionInfo  m_position;                   // trade position object
CTrade         m_trade;                      // trading object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of current positions
      if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
         if(m_position.Symbol()==Symbol())
           {
            m_trade.SetExpertMagicNumber(m_position.Magic());
            if(!m_trade.PositionClose(m_position.Ticket())) // close a position by the specified m_symbol
               Print(__FILE__," ",__FUNCTION__,", ERROR: ","CTrade.PositionClose ",m_position.Ticket());
           }
  }
//+------------------------------------------------------------------+
Close Positions Current Symbol
Close Positions Current Symbol
  • www.mql5.com
Скрипт закрывает все позиции по текущему символу