Hallo zusammen,
mein EA läuft auf mehreren Symbolen gleichzeitig.
Grundprinzip ist:
- öffnet Stop-Order bei Vorliegen der entsrechenden Voraussetzungen und trailt den OrderOpenPrice bei Bedarf nach
- bei Vorliegen einer Order (Buy oder Sell) trailt er den StopLoss im Gewinnbereich entsprechend mit
- geht die Order in die falsche Richtung setzt er bei einem bestimmten Abtsnad eine Hedge-Order in gleiche Richtung (Sell-Order => hedge-Order auch Sell mit 3-facher Lotgröße wie
Ursprungs-Order)
- falls Profit der Hedge-Order und Urspungs-Order im Gewinnbereich, schließt er beide
- der EA hat dabei auf jedem Symbol eine andere MagicNumber
Das Ganze funktioniert auch reibungslos, wenn nur eine Order offen ist (zB eine Buy-Order auf EURUSD).
Sind zwei Order offen (zB eine Buy-Order auf EURUSD und eine Sell-Order auf USDJPY) verweigert der EA das Trailing des StopLoss und das mögliche Setzen einer Hedge-Order.
Haber schon alles Mögliche ausprobiert, habe es aber leider nicht hinbekommen, dass der EA auch bei mehreren offenen Order auf unterschiedlichen Symbolen einwandfrei arbeitet und finde den Fehler nicht :-/
Das obene beschriebene Trailing im Gewinnbereich soll mit folgendem Ablauf erreicht werden, wobei die Expert_ID die vergebene Magic ist
Code:
// START OF TRAILING *****************************************************************
TrailingStop=0.00003;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if(OrderMagicNumber()==Expert_Id && OrderSymbol()==Symbol()) //only primary Order
{
switch(OrderType())
{
//==========================================================
case OP_BUY:
//RefreshRates();
// TRAILING OF PRIMARY BUY-ORDER *******************
if(Trail==TRUE && CountOrders(OP_BUY,HedgeMagic,Symbol())<1).... d.h. es ist keine Hedge-Order geöffnet
{
if(TrailingStop>0)
{
if(ND(BidValue-OrderOpenPrice())>ND(TrailingStop+spread))
{
if(OrderStopLoss()<BidValue-spread)
{
//--- modify order
mt=OrderModify(OrderTicket(),OrderOpenPrice(),ND(BidValue-spread),0,0,Green);
}
}
}
}
OpenOrderCount++;
CheckHedge(Expert_Id);
//RefreshRates();
break;
.... usw für Sell..
Hat jemand eine Idee, wo das Problem liegen könnte?....Vielen Dank