diff --git a/MtApi5/MtApi5Client.cs b/MtApi5/MtApi5Client.cs index 33bf084b..69482ad0 100755 --- a/MtApi5/MtApi5Client.cs +++ b/MtApi5/MtApi5Client.cs @@ -497,9 +497,10 @@ namespace MtApi5 ///Closes a position with the specified ticket. /// ///Ticket of the closed position. - public bool PositionClose(int ticket) + ///Maximal deviation from the current price (in points). + public bool PositionClose(ulong ticket, ulong deviation = ulong.MaxValue) { - var commandParameters = new ArrayList { ticket}; + var commandParameters = new ArrayList { ticket, deviation }; return SendCommand(Mt5CommandType.PositionClose, commandParameters); } diff --git a/mq5/MtApi5.mq5 b/mq5/MtApi5.mq5 index bc4e935a..b213a58e 100755 --- a/mq5/MtApi5.mq5 +++ b/mq5/MtApi5.mq5 @@ -279,12 +279,14 @@ int executeCommand() case 64: //PositionClose { - int ticket; + ulong ticket; + ulong deviation; CTrade trade; - - getIntValue(ExpertHandle, 0, ticket); - - sendBooleanResponse(ExpertHandle, trade.PositionClose(ticket)); + + getULongValue(ExpertHandle, 0, ticket); + getULongValue(ExpertHandle, 1, deviation); + + sendBooleanResponse(ExpertHandle, trade.PositionClose(ticket, deviation)); } break;