mql5/Experts/MasterOfPuppets/DefendModifier.mq5

36 lines
1.7 KiB
MQL5
Raw Permalink Normal View History

2026-02-27 12:41:19 +03:00
//+------------------------------------------------------------------+
//| DefendModifier.mq5 |
//| Copyright 2026, MasterOfPuppets |
//| https://forge.mql5.io/masterofpuppets/mql5 |
//+------------------------------------------------------------------+
#include "DefendModifier.mqh"
#property copyright "Copyright 2026, MasterOfPuppets"
#property link "https://forge.mql5.io/masterofpuppets/mql5"
//+------------------------------------------------------------------+
//| Modify function |
//+------------------------------------------------------------------+
void DefendModifier::Modify()
2026-02-27 12:41:19 +03:00
{
if(m_withExpert && m_tradeContext.GetPositionInfo().Magic() != m_tradeContext.GetTrade().RequestMagic())
2026-02-27 12:41:19 +03:00
{
return;
}
double deltaStopLoss = 0.0;
switch(m_tradeContext.GetPositionInfo().PositionType())
2026-02-27 12:41:19 +03:00
{
case ENUM_POSITION_TYPE::POSITION_TYPE_BUY:
deltaStopLoss = STOP_LOSS;
break;
case ENUM_POSITION_TYPE::POSITION_TYPE_SELL:
deltaStopLoss = -STOP_LOSS;
break;
}
double stopLoss = IsZero(m_tradeContext.GetPositionInfo().StopLoss())
? m_tradeContext.GetPositionInfo().PriceOpen() : m_tradeContext.GetPositionInfo().StopLoss();
m_tradeContext.GetTrade().PositionModify(m_tradeContext.GetPositionInfo().Ticket(),
m_tradeContext.GetSymbolInfo().NormalizePrice(stopLoss + deltaStopLoss),
m_tradeContext.GetPositionInfo().TakeProfit());
2026-02-27 12:41:19 +03:00
}
//+------------------------------------------------------------------+