Am Code stimmt aber was auch nicht ganz. Der Kompilierer meckert bei: Orderclose und OrderSelect.
return value of 'OrderSelect' should be checked test.mq4
return value of 'OrderClose' should be checked test.mq4
Hier der Code:
//+-----------------------------------------------------------------+
//|
Prüfen ob Orders oder Positionen geöffnet sind
int offeneorders=0;
int anzahlorders=OrdersTotal();
for(zaehler=0;zaehler<anzahlorders;zaehler++) // for schleife
{
OrderSelect(zaehler, SELECT_BY_POS, MODE_TRADES); // MODE_TRADES = offene und aufgegebene Orders
// check offene Positionen, Symbol & MagicNumber
if (OrderSymbol()== Symbol())
{
if (OrderMagicNumber()==MagicNummer)
{
offeneorders++;
}
} // OrderSymbol
} // for schleife
//+-----------------------------------------------------------------+
//|Orders aufgeben
if(offeneorders == 0 )
{
double Minilots = MarketInfo (Symbol() , MODE_STOPLEVEL); //Minimum Takeprofit
//Long Signale umsetzen
if(LongSignal == true)
{
LongOrder = OrderSend(Symbol(),OP_BUY,HandelsLots,Ask,2,0,Ask+ Minilots*Point,"LONG",MagicNummer,0,Green);
}
//Short Signale umsetzen
if(ShortSignal == true)
{
ShortOrder = OrderSend(Symbol(),OP_SELL,HandelsLots,Bid,2,0,Bid-Minilots*Point,"SHORT",MagicNummer,0,Red);
}
}
//-------
//offene Order nach 24 Stunden schließen
if(TimeCurrent()>OrderOpenTime()+60*60*24)
for(zaehler=0;zaehler<OrdersTotal();zaehler++)
{
if(OrderSelect(zaehler,SELECT_BY_POS,MODE_TRADES)= =false) break;
//---- check order type
if(OrderType()==OP_BUY && OrderMagicNumber() == MagicNummer && OrderSymbol()== Symbol() )
{
if(Close[1]<LongOrder) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
Print("Long wird geschlossen");
break;
}
if(OrderType()==OP_SELL)
{
if(Close[1]>ShortOrder) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
Print("Short wird geschlossen");
break;
}
}
return(0);
}