Statt es selbst zu versuchen (Code bitte mit dem Code-Knopf </> oder Alt+S posten!) doch einfach mal suchen: https://www.mql5.com/de/search#!keyword=close%20all&module=mql5_module_codebase.
Über 300 Lösungen allein in der CodeBase.
if(TrailingStopp_verwenden) { if(StringFind(OrderComment(),KommentarZusatz)<0) if(Ask<=OrderOpenPrice()-(UseAktivTS*_Point)) if(Ask<OrderStopLoss()-(UseTS*_Point)||OrderStopLoss()==0) { double trailingSL=NormalizeDouble(Ask+(UseTS*_Point),Digits); int serie=(int)OrderComment(); string name=NORZ+(string)serie; if(ObjectFind(NOTS+(string)serie)<0) if(trailingSL>0&&trailingSL>Ask+stoplev) { while(IsTradeContextBusy()) Sleep(10); bool om=OrderModify(OrderTicket(),OrderOpenPrice(),trailingSL,OrderTakeProfit(),OrderExpiration(),clrOrange); for (int i=OrdersTotal();i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE); }
Naja, man muss schon etwas nehmen, das man dann an die eigenen Wünsche anpassen muss - oder, wenn man es haben will, wie man es sich denkt und wünscht, dann gibt es die Freelancer.
Außerdem kann und wird der Kommentar von Broker verändert, das, was der nicht ändert und Du bestimmst ist die Magic-Nummer, sozusagen Deine Referenz.
Außerdem ist das bissen Code zu Kurz und nach dem, was ich mir denke, auch wahrscheinlich falsch - aber wie gesagt halt zu wenig.
![Handelsanwendungen für MetaTrader 5 auf Bestellung Handelsanwendungen für MetaTrader 5 auf Bestellung](https://c.mql5.com/36/58/handelsanwendungen-f-r-metatrader.png)
- 2022.08.24
- www.mql5.com
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo,
ich habe einen Grid EA. Jede Order ist mit einem TS versehen.
Ich möchte das, wenn der SL vom TS erreicht ist, alle offenen Buys, bzw. Sells geschlossen werden.
Anbei ein Teil des Codes für das TS der Sells. Die letzten Zeilen (for (int.....) habe ich eingefügt. Ergebnis: Sobald TS aktiv = close alle Sells.
Der SL wird aber nicht mehr getrailt. Habe ich meinen Zusatz an die falsche Stelle gesetzt?
Wo can help me?
if(TrailingStopp_verwenden)
{
if(StringFind(OrderComment(),KommentarZusatz)<0)
if(Ask<=OrderOpenPrice()-(UseAktivTS*_Point))
if(Ask<OrderStopLoss()-(UseTS*_Point)||OrderStopLoss()==0)
{
double trailingSL=NormalizeDouble(Ask+(UseTS*_Point),Digits);
int serie=(int)OrderComment();
string name=NORZ+(string)serie;
if(ObjectFind(NOTS+(string)serie)<0)
if(trailingSL>0&&trailingSL>Ask+stoplev)
{
while(IsTradeContextBusy()) Sleep(10);
bool om=OrderModify(OrderTicket(),OrderOpenPrice(),trailingSL,OrderTakeProfit(),OrderExpiration(),clrOrange);
for (int i=OrdersTotal();i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);
}