MQL5/3_MQL5_EA_Tools/06_Trailing_Stop_02.mq5

54 lines
2 KiB
MQL5
Raw Permalink Normal View History

2025-01-03 19:59:52 -05:00
//+------------------------------------------------------------------+
2025-04-16 11:59:03 -04:00
//| 6.Trailing_Stop_02.mq5 |
//| Author: Santiago Cruz |
2025-01-03 19:59:52 -05:00
//| https://www.mql5.com/en/users/algo-trader/ |
//+------------------------------------------------------------------+
2025-01-03 20:39:06 -05:00
//Source: "https://github.com/nkanven/MT4-MT5-Trading-EA-Collections/blob/master/MQL5/Experts/Nkanven/TrendlinesEA.mq5"
2025-04-16 11:59:03 -04:00
#property copyright "Santiago Cruz"
2025-01-03 19:59:52 -05:00
#property link "https://www.mql5.com/en/users/algo-trader/"
#property version "1.00"
2025-01-03 20:33:40 -05:00
int Trail()
{
for(int i=0;i<PositionsTotal();i++)
{
if(PositionGetSymbol(i)==_Symbol && PositionGetInteger(POSITION_MAGIC)==Magic)
{
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
ulong ticket=PositionGetTicket(i);
double pp=SymbolInfoDouble(_Symbol,SYMBOL_BID);
double sl=PositionGetDouble(POSITION_SL);
double op=PositionGetDouble(POSITION_PRICE_OPEN);
double tp=PositionGetDouble(POSITION_TP);
if(pp-op>=TrailingStart*_Point)
{
if(sl<pp-(TrailingStop+TrailingStep)*_Point || sl==0)
{
Modify(ticket,pp-TrailingStop*_Point,tp);
}
}
}
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
{
ulong ticket=PositionGetTicket(i);
double pp=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
double sl=PositionGetDouble(POSITION_SL);
double op=PositionGetDouble(POSITION_PRICE_OPEN);
double tp=PositionGetDouble(POSITION_TP);
if(op-pp>=TrailingStart*_Point)
{
if(sl>pp+(TrailingStop+TrailingStep)*_Point || sl==0)
{
Modify(ticket,pp+TrailingStop*_Point,tp);
}
}
}
}
}