şundan çatallanmış masterofpuppets/mql5
36 satır
1,7 KiB
MQL5
36 satır
1,7 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| 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()
|
|
{
|
|
if(m_withExpert && m_tradeContext.GetPositionInfo().Magic() != m_tradeContext.GetTrade().RequestMagic())
|
|
{
|
|
return;
|
|
}
|
|
double deltaStopLoss = 0.0;
|
|
switch(m_tradeContext.GetPositionInfo().PositionType())
|
|
{
|
|
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());
|
|
}
|
|
//+------------------------------------------------------------------+
|