mirror of
https://github.com/raa251/Liquidity_Predator.git
synced 2026-07-06 13:42:02 +00:00
53 lines
1.3 KiB
MQL5
53 lines
1.3 KiB
MQL5
bool M_ModifyPositionSL(ulong ticket, double NewSL)
|
|
{
|
|
ResetLastError();
|
|
int Error;
|
|
|
|
PositionSelectByTicket(ticket);
|
|
|
|
Error = GetLastError();
|
|
if(Error != 0)
|
|
{
|
|
M_LogError("PositionSelectByTicket, Error=" + IntegerToString(Error));
|
|
return false;
|
|
}
|
|
|
|
string symbol = PositionGetString(POSITION_SYMBOL);
|
|
double tp = PositionGetDouble(POSITION_TP);
|
|
|
|
Error = GetLastError();
|
|
if(Error != 0)
|
|
{
|
|
M_LogError("PositionGetDouble(POSITION_TP), Error=" + IntegerToString(Error) + " ticket=" + IntegerToString(ticket));
|
|
return false;
|
|
}
|
|
|
|
MqlTradeRequest req;
|
|
MqlTradeResult res;
|
|
ZeroMemory(req);
|
|
ZeroMemory(res);
|
|
|
|
req.action = TRADE_ACTION_SLTP;
|
|
req.position = ticket;
|
|
req.symbol = symbol;
|
|
req.sl = NormalizeDouble(NewSL, _Digits);
|
|
req.tp = tp;
|
|
|
|
if(!OrderSend(req, res))
|
|
{
|
|
string Message = "Modify SL failed: " + IntegerToString(GetLastError());
|
|
M_LogError(Message);
|
|
return false;
|
|
}
|
|
|
|
if(res.retcode != TRADE_RETCODE_DONE)
|
|
{
|
|
string Message = "Modify SL retcode: " + IntegerToString(res.retcode);
|
|
M_LogError(Message);
|
|
return false;
|
|
}
|
|
|
|
M_LogInfo("Stoploss modified to " + DoubleToString(req.sl));
|
|
|
|
return true;
|
|
}
|