@ MA-EA glaub du hast mich falsch verstanden aber danke dennoch für den versuch.
@Doc
ja genau das dachte ich ja auch, dass es auch bei Teilverkäufen sich ja immer noch um die gleiche MagicNumber handelt, die mir ja per MouseOver auch angezeigt wird wenn ich auf die offenen Positionen gehe. Im Bild sieht man , das der EA das ignoriert und ne neue Order aufmacht.
Freitag Abend konnte ich auch keine weiteren Tests mehr machen, war nicht mehr viel los. hier mal mein Code, vllt entdeckst du ja nen Fehler den ich übersehe.
Code:
int start()
{
double BB_U = iBands(Symbol(), 0,BB_Period,BB_Deviation,0, PRICE_CLOSE,1,1);
double BB_L = iBands(Symbol(), 0,BB_Period,BB_Deviation,0, PRICE_CLOSE,2,1);
double C = Close[1];
double C2 = Close[2];
// Begin der Setup Sektion, Abfrage erfolgt bei jeder neuen Kerze ---------------------------------------------------
if( BarCount != Bars )
{
Trend_(); //Trend bestimmen
Target(); //Maximal-Ziel...drüber/drunter wird nicht mehr gehandelt
TradeperBar = 0; //Max. 1 Trade pro Kerze erlaubt
BarCount = Bars;
//Long Setup
if( C2 < BB_U && C > BB_U )
{
L_SET = 1;
}
else
{
L_SET = 0;
}
// Short Setup
if(C2 > BB_L && C < BB_L)
{
S_SET=2;
}
else
{
S_SET=0;
}
// Keine offenen Order im Markt ------------------------------------------------------------------------
if(OrdersTotal() == 0)
{
//Long Trade , falls alle Parameter übereinstimmen
if( L_SET == 1 && TimeTrade() == true && Trend == 1 && Long_Richtung == true && TG_LONG == 0 )
{
double Long = OrderSend(Symbol(),OP_BUY,LotSize,Ask,0,Ask - (SL*pips),Bid + (TP*pips),NULL ,MagicNumber,0,clrLime);
TradeperBar = 1;
BE = 0;
TVK1_Done = 0;
TVK2_Done = 0;
Order_EA = 1;
}
if( S_SET == 2 && TimeTrade() == true && Trend == 2 && Short_Richtung == true && TG_SHORT == 0 )
{
double Short = OrderSend(Symbol(),OP_SELL,LotSize,Bid,0,Bid + SL*pips,Ask - TP*pips,NULL,MagicNumber,0,clrRed);
TradeperBar = 1;
BE = 0;
TVK1_Done = 0;
TVK2_Done = 0;
Order_EA = 1;
}
}
// Ende der Sektion--------------------------------------------------------------------------------------------------------
//offene Posi´s schauen ob eine Order vom EA schon läuft--------------------------------------------------------------------
if(OrdersTotal() != 0 )
{
for(int pos = OrdersTotal()-1; pos >= 0; pos--)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES))
{
Print(" Position: ", pos, "\n Order Comment : " , OrderComment(), "\n Order Symbol: ", OrderSymbol(), "\nMagic Number: " , OrderMagicNumber());
//offene Position vom EA gefunden, Order verweigern
if(OrderMagicNumber() == MagicNumber)
{
Print ("EA: " + IntegerToString(MagicNumber) + " ist bereits mit einer Posi im Markt, Order verweigert");
Order_EA =1 ;
//Trade verwalten ---------------------------------------------------------------------------------------------------------
if(BE == 0)
{
MoveToBE();
}
if(BE == 1)
{
SL_Move();
}
if(TVK1_Done == 0 || (TVK1_Done == 1 && TVK2_Done == 0) )
{
CheckForTVK();
}
break;
}
// Keine Order vom EA bei den offenen Posi´s dabei
else
{
Order_EA=2;
}
}
}//Schleifenende
}
//Ende der Sektion-----------------------------------------------------------------------------------------------------------------
// Tradeausführung wenn EA noch nicht im Markt ist
if(Order_EA == 2)
{
if( L_SET == 1 && TimeTrade() == true && Trend == 1 && Long_Richtung == true && TG_LONG == 0 )
{
double Long = OrderSend(Symbol(),OP_BUY,LotSize,Ask,0,Ask - (SL*pips),Bid + (TP*pips),NULL,MagicNumber,0,clrLime);
TradeperBar = 1;
BE = 0;
TVK1_Done = 0;
TVK2_Done = 0;
}
if( S_SET == 2 && TimeTrade() == true && Trend == 2 && Short_Richtung == true && TG_SHORT == 0 )
{
double Short = OrderSend(Symbol(),OP_SELL,LotSize,Bid,0,Bid + SL*pips,Ask - TP*pips, NULL,MagicNumber,0,clrRed);
TradeperBar = 1;
BE = 0;
TVK1_Done = 0;
TVK2_Done = 0;
}
}
//Ende der Sektion--------------------------------------------------------------------------------------------------------------
}// Ende der ganzen Setup Sektion
Comment("Kontostand: " , AccountBalance(),"\nTG_Long: " ,TG_LONG, "\nTG_Long: " , TG_SHORT, "\nMagic: " ,OrderMagicNumber(), "\nOffene Orders: " ,OrdersTotal(),
"\nTrend: " ,Trend, "\nTradingZeit: ", TimeTrade(), "\nUP_Kreuzung: " , L_SET,"\nDOWN_Kreuzung: ",S_SET ,
"\nTVK 1 Status: " , TVK1_Done, "\nBE_Status: " ,BE );
return(0);
}
|