Position modify

This commit is contained in:
Vasily Larionov
2019-09-24 18:52:56 +03:00
parent 4b384d9da2
commit 828c1185b3
3 changed files with 53 additions and 0 deletions
+1
View File
@@ -101,6 +101,7 @@ namespace MtApi5
//CTrade
PositionClose = 64,
PositionOpen = 65,
PositionModify = 6066,
//PositionOpenWithResult = 1065,
//Backtesting
+14
View File
@@ -547,6 +547,20 @@ namespace MtApi5
return SendCommand<bool>(Mt5CommandType.PositionClose, commandParameters);
}
/// <summary>
/// Modifies existing position
/// </summary>
/// <param name="ticket">>Ticket of the position</param>
/// <param name="sl">Stop loss</param>
/// <param name="tp">Take profit</param>
/// <returns></returns>
public bool PositionModify(ulong ticket, double sl, double tp)
{
var commandParameters = new ArrayList { ticket, sl,tp };
return SendCommand<bool>(Mt5CommandType.PositionModify, commandParameters);
}
///<summary>
///Closes a position with the specified ticket.
///</summary>
+38
View File
@@ -552,6 +552,9 @@ int executeCommand()
// case 1065: //PositionOpenWithResult
// Execute_PositionOpen(true);
// break;
case 6066: //PositionModify
Execute_PositionModify();
break;
case 66: //BacktestingReady
Execute_BacktestingReady();
break;
@@ -3255,6 +3258,41 @@ void Execute_MarketBookRelease()
}
}
void Execute_PositionModify()
{
ulong ticket;
double sl;
double tp;
if (!getULongValue(ExpertHandle, 0, ticket, _error))
{
PrintParamError("PositionModify", "ticket", _error);
sendErrorResponse(ExpertHandle, -1, _error, _response_error);
return;
}
if (!getDoubleValue(ExpertHandle, 1, sl, _error))
{
PrintParamError("PositionModify", "sl", _error);
sendErrorResponse(ExpertHandle, -1, _error, _response_error);
return;
}
if (!getDoubleValue(ExpertHandle, 2, tp, _error))
{
PrintParamError("PositionModify", "tp", _error);
sendErrorResponse(ExpertHandle, -1, _error, _response_error);
return;
}
CTrade trade;
bool ok = trade.PositionModify(ticket,sl,tp);
Print("command PositionModify: result = ", ok);
if (!sendBooleanResponse(ExpertHandle, ok, _response_error))
{
PrintResponseError("PositionModify", _response_error);
}
}
void Execute_PositionOpen(bool isTradeResultRequired)
{
string symbol;