Here is a description of methods and properties intended for managing and obtaining information about positions, orders, and deals.
Position - an uncompleted trading operation (unfinished deal). When changing the quotation of a financial instrument, the position keeps a record of the client’s funds (for write-off and crediting).
This section describes properties and methods for working with positions
We send a request to open a position with the specified parameters.
There are two ways to call a method:
int Positions.Open(symbolName, positionType, volume, takeProfit, stopLoss, takeProfitByPips, stopLossByPips, label, out positionId, isJustCheck = false, isAsync = false) |
Input parameters:
Parameter | Type | Description |
symbolName | string | Symbol name |
positionType | PositionType | Buy or Sell |
volume | double | Position volume in lots |
takeProfit | double | Take Profit - the level of the market price, upon reaching which you should close the position to take profits. Indicated in quoted currency. stopLoss |
stopLoss | double | Stop loss - the level of the market price, upon reaching which you should close the position to fix losses. Indicated in quoted currency. |
takeProfitByPips | Int | Take profit. Price level in points for profit fixing. |
stopLossByPips | Int | Stop Loss. Price level in points for fixing losses. |
positionId | outint | In the parameter, you can set a variable into which, after a successful opening of a position, a unique identifier of the open position will be recorded. The parameter works only for synchronous mode. |
isJustCheck | bool | Check mode (enabled or disabled). When the mode is enabled, a request to open a position is not sent, but only the possibility of opening with such parameters is checked. Disabled by default = false |
isAsync | bool | Asynchronous mode (enabled or disabled). Disabled by default = false |
int Positions.Open(ref position, isJustCheck = false, isAsync = false) |
Input parameters:
Parameter | Type | Description |
position | OpenPositionOperation | An object that contains all operation parameters for opening a position |
isJustCheck | bool | Check mode (enabled or disabled). When the mode is enabled, a request to open a position is not sent, but only the possibility of opening with such parameters is checked. Disabled by default = false |
isAsync | bool | Asynchronous mode (enabled or disabled). Disabled by default = false |
Return value:
If isJustCheck= true
It returns the code of the operation execution result:
0 | Check for the possibility of opening was successful. Check occurs on the client side |
-1 | Check failed |
If isAsync= false (synchronous mode by default), it returns the code of the operation execution result:
0 | Position is successfully opened |
Error code | If an error occurs, returns the server error code |
If the name of the variable is passed to the out parameter positionId and the position is successfully opened, then the unique identifier of the open position will be recorded to this variable.
If isAsync= true (asynchronous mode)
0 | The request to open a position was successfully sent to the server. It does not mean that the position has already been executed or will definitely be executed. |
Error code | If an error occurs, it returns the error code received on the client. The codes match the server error codes. |
Using the out parameter positionId in asynchronous mode does not make sense. It will always return -1
Example:
/* We open a buy position on the main symbol of the robot, with a volume of 0.1 lots, without setting TP/SL, with the value of the MyLabel position label set. */ string MyLabel="MyPosition"; int PositionId; int err = -1; err = Positions.Open(Symbol.SymbolName, PositionType.Sell, Lot, 0, 0, 0, 0, MyLabel, out positionId); if (err != 0) { msg= DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss:fff") + " Failed, ServerErrorCode = " + err.ToString(); } |