//+------------------------------------------------------------------+ //| Gibt den korrekten StopLoss relativ zum StopLevel zurück | //+------------------------------------------------------------------+ double CorrectStopLoss(const string symbol_name,const ENUM_POSITION_TYPE position_type,const int stop_loss) { if(stop_loss==0) return 0; double pt=SymbolInfoDouble(symbol_name,SYMBOL_POINT); if(pt==0) return 0; double price=(position_type==POSITION_TYPE_BUY ? SymbolInfoDouble(symbol_name,SYMBOL_ASK) : SymbolInfoDouble(symbol_name,SYMBOL_BID)); int lv=StopLevel(symbol_name),dg=(int)SymbolInfoInteger(symbol_name,SYMBOL_DIGITS); return (position_type==POSITION_TYPE_BUY ? NormalizeDouble(::fmin(price-lv*pt,price-stop_loss*pt),dg) : NormalizeDouble(::fmax(price+lv*pt,price+stop_loss*pt),dg) ); } //+------------------------------------------------------------------+ //| Prüft StopLoss auf Korrektheit in Bezug auf StopLevel | //+------------------------------------------------------------------+ bool CheckCorrectStopLoss(const string symbol_name,const ENUM_POSITION_TYPE position_type,const double stop_loss) { if(stop_loss==0) return true; double pt=SymbolInfoDouble(symbol_name,SYMBOL_POINT); if(pt==0) return false; double price=(position_type==POSITION_TYPE_BUY ? SymbolInfoDouble(symbol_name,SYMBOL_ASK) : SymbolInfoDouble(symbol_name,SYMBOL_BID)); int lv=StopLevel(symbol_name),dg=(int)SymbolInfoInteger(symbol_name,SYMBOL_DIGITS); return ( position_type==POSITION_TYPE_BUY ? NormalizeDouble(stop_loss-price- lv*pt,dg)<0 : NormalizeDouble(stop_loss-price+ lv*pt,dg)>0 ); }
Fehler hervorgehoben.
fxsaber:
Fehler werden hervorgehoben.
double price=(position_type==POSITION_TYPE_BUY ? SymbolInfoDouble(symbol_name,SYMBOL_ASK) : SymbolInfoDouble(symbol_name,SYMBOL_BID)); int lv=StopLevel(symbol_name),dg=(int)SymbolInfoInteger(symbol_name,SYMBOL_DIGITS); return (position_type==POSITION_TYPE_BUY ? NormalizeDouble(::fmin(price-lv*pt,price-stop_loss*pt),dg) : NormalizeDouble(::fmax(price+lv*pt,price+stop_loss*pt),dg) );
Worin besteht der Fehler?
Artyom Trishkin:
Wo liegt der Fehler?
Es wird der falsche Preis verwendet.
fxsaber:
Begründen Sie.
Der Preis wird falsch verwendet.
Artyom Trishkin:
Begründen.
Begründen.
OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, Bid);
Es funktioniert, wenn StopLevel == 0 ist.
Gibt es eine mt4-Version?
Tolle Arbeit! Ich danke Ihnen vielmals!
Einfach zu bedienen. Top. Großartig.
Hallo zusammen.
Ich versuche, Ihre EA zu verwenden, aber es bekommen aus mit Code 1.
Es ist brasilianischen IBOV Markt. gedeckte Verträge und real-Konto.
Die Trailing-Stops scheinen sich nicht anzupassen, wenn sich der Preis weiter entfernt. Gibt es etwas, das ich übersehe?
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
TrailingStopAndTake:
Autor: Scriptor