Hi!
Da ich aus irgendwelchen Gründen unter MT5 keinen Trailingstop setzen kann,
habe ich versucht mir ein EA zu schreiben, der dies übernimmt.
Einen für BUY- und einen für SELL-Positionen,
etwas umständlich aber besser als ohne zu arbeiten.
Im Backtest klappt alles bestens!
Live nicht...
(lasse ihn beim Test eine Position eröffnen, habe diese Zeilen aber entfernt)
Code:
input int Trailingstop = 100;
input int Schrittgröße = 1;
#include<Trade\Trade.mqh>
CTrade trade;
void OnTick()
{
double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
CheckTrailingStop(Bid);
}
void CheckTrailingStop(double Bid)
{
if(PositionsTotal()>0)
{
double SL=NormalizeDouble(Bid+Trailingstop*_Point,_Digits);
for(int i=PositionsTotal() -1; i>=0; i--)
{
string symbol=PositionGetSymbol(i);
if (_Symbol==symbol)
if (PositionGetInteger(POSITION_TYPE)==ORDER_TYPE_SELL)
{
ulong PositionTicket=PositionGetInteger(POSITION_TICKET);
double CurrentStopLoss=PositionGetDouble(POSITION_SL);
if (CurrentStopLoss>SL)
{
trade.PositionModify(PositionTicket,(CurrentStopLoss-Schrittgröße*_Point),0);
}
}
}
}
}
Was habe ich übersehen?
Bin für jeden Ratschlag dankbar!