Positions.Check
It sends a request to the server to check if there are enough funds to open a position
int Positions.Check(symbolName, positionType, volume, closePrice, out margin, out profit)
Input parameters
Parameter |
Type |
Description |
symbolName |
string |
Symbol name |
positionType |
Buy or Sell |
|
volume |
double |
Position volume in lots |
closePrice |
double |
Position closing price in quoted currency |
margin |
оut double |
In the parameter, you can set a variable in which the calculated amount of collateral in the account currency will be recorded |
profit |
оut double |
In the parameter, you can set a variable in which the calculated amount of profit in the account currency will be recorded |
Return value
0 |
Fund sufficiency check was passed successfully |
If an error occurs, it returns the server error code |
If the name of a variable is passed to the out parameter Margin, then the amount of funds required to ensure open positions on the account will be recorded to this variable
If the name of a variable is passed to the out parameter Profit, then the amount of the calculated profit will be recorded to this variable
Example:
string symbolName = "EURUSD";
double volume = 0.1;
double bidprice= Symbols.Find(symbolName).Quote.Bid;
double margin;
double profit;
int result;
result = Positions.Check(symbolName, PositionType.Buy, volume, bidprice, out margin, out profit);
if (result == 0) {
line = " Positions.Check(" + symbolName + ", PositionType.Buy, " + volume.ToString() + ", " + bidprice.ToString()
+ ", out margin, out profit):";
line = line + " result: " + result.ToString() + ", margin: " + margin.ToString() + ", profit: " + profit.ToString();
using (StreamWriter sw = new StreamWriter(mOnStartLog, true))
sw.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss:fff") + line + Environment.NewLine);
}