Magicnumber

 
ich habe ein Problem mit meinem EA den ich gerne auf mehreren Charts in unterschiedlichen Zeiten laufen lassen würde.
Wenn ich ihn einzeln laufen lasse funktioniert alles wunderbar.

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 :)


if (IsTrade && SIGNAL_SELL ) {           

(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 ) {              //( 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());

}}}



 

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.

BTW: Alle (!) Mt4-Fragen gehören in den untersten Thread - ich werd ihn später verschieben.
 

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 :)
 
IDCBOI:
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.

Handelsanwendungen für MetaTrader 5 auf Bestellung
Handelsanwendungen für MetaTrader 5 auf Bestellung
  • www.mql5.com
Suche ein rentables MetaTrader 4 Indikator der nicht repaint ! Es sollte mit klaren (sell) und (Buy) Signalen angezeigt werden. Search a rentable MetaTrader 4 Indikator he not repaint.. with clear sell and buy signals.. Dear Mr Puzanov, I have a new idea for my EA. I'll send description, now I have to go at work. After you read description...
 
// 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;    
         }  
      }                  
   }
}