Die MagicMumbers sind int! Also definiere zB. den ersten Teil, MagNum1 = 876 und den zweiten Teil mit _Period (=> 1,5,..,1440,..).
Angenommen Du arbeitest mit maximal Tages-Kerzen (1440) dann ergibt sich:
int MagNum1 = 8760000, MagNum2 = _Period, MagNum = MagNum1 + MagNum2;
Damit sähe dann die MagicNumber für m15 so aus: 8760015.
Mit:
if ( MagNum%10000 != _Period ) continue;
kannst Du dann leicht alle die Positionen auslassen, die auf anderen Charts (Zeitrahmen) laufen - es sei den Du hast zwei Chart mit demselben Zeitrahmen!
Du könntest sogar noch alles Sells mit -1 multiplizieren um so schnell und einfach aus Buy und Sell zu unterscheiden - wenn das wichtig sein sollte.
Hey danke erstmal für Deine Hilfe:)
also ich hab das jetzt mal versucht einzufügen aber jetzt schließt er garnichts mehr. :( Fehler spuckt er mir aber a net aus.
int MagNum1 = 8760000, MagNum2 = _Period, MagNum = MagNum1 + MagNum2; if ((IsTrade && SIGNAL_SELL ) && ( MagNum%10000 != _Period )) { (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)); if(OrderSymbol()==Symbol()) // check for symbol { if ((OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP) && OP_SELLSTOP); { OrderDelete(OrderTicket()); }}} if ((IsTrade && SIGNAL_BUY )&& ( MagNum%10000 != _Period )) { //( Open[2] < Close[2] ) && ( Open[1] > Close[1] ) (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)); if(OrderSymbol()==Symbol()) // check for symbol { if ((OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)&& OP_BUYSTOP) //check for sell stops/limits { OrderDelete(OrderTicket()); }}}
Seufz :(
Überprüfe wie Du Deine Orders wegschickst!! Lies mal nach wie die Parameter von OrderSend() sind!
Naja da habe ich als Beispiel beim BUY
Ticket = OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask + (Open[1] - Close[1]) + OFFSET * Point , Slippage, StopLossLevel, TakeProfitLevel , "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
Aber ich sehe schon, hier müsste ich wahrscheinlich bei der MagicNumber deinen Vorschlag einbringen oder?
Hättest du Lust bzw. Zeit mir das zu Programmieren? Natürlich gegen Bezahlung. Ich bin da einfach nicht fit genug drin :)
Leider habe ich keine Zeit, aber Freelancer schon.
Sonst kann man über die Suche hier zB. Artikel zu MagicNumber finden, so wie den hier: https://www.mql5.com/de/articles/1359.
- www.mql5.com
// Magic hast Du schon als Int definiert, wenn "0", dann alle offenen Trades, ansonsten halt nur die, welche genau die eine Magic haben void MachZuDenKram() { int total=OrdersTotal(); for (int cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS); int mode=OrderType(); bool res = false; bool condition = false; if ( Magic>0 && OrderMagicNumber()==Magic ) condition = true; else if ( Magic==0 ) condition = true; if (condition && ( mode==OP_BUY || mode==OP_SELL )) { // - BUY Orders if(mode==OP_BUY) { res = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Red); if( !res ) { Print(" BUY OrderClose failed: #",GetLastError()); Print(" Ticket=",OrderTicket()); Sleep(3000); } break; } else // - SELL Orders if( mode == OP_SELL) { res = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,Red); if( !res ) { Print(" SELL OrderClose failed: #",GetLastError()); Print(" Ticket=",OrderTicket()); Sleep(3000); } break; } } } }
- 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.
Sobald ich aber mehrer laufen lasse, schließt er die Pending Order der anderen EAs.
Ich habe euch mal den Teil den es nach meiner Ansicht betrifft beigefügt.
Kann man hier eine Unterscheidung reinbasteln das er nur seine eigenen Positionen erkennt und dementsprechend auch nur behandelt?
Hab schon so viel mit ner Magicnumber probiert aber komme einfach nicht ans Ziel.
Wäre echt cool wenn mir jemand ein bisschen helfen könnte
Dank Schonmal für Tips :)