Gut dann Versuchen wir es mal besser zu machen. Nochmal kurz die Beschreibung: Wenn ein Signal da ist soll der Expert Advisor ein Long Trade eingehen und gleichzeitig einen Short Trade. Es gibt nur die beiden Trades kein weiteren bis diese nicht geschlossen sind. So jetzt zu meinem Problem: Ich möchte wenn Long geschlossen wird(egal aus welchen Grund ob TP/SL oder mein Gewinn erreicht wurde). Das sich der Short Order dann auch schließt, sollte es natürlich nicht gehen aus welchem Grund auch immer soll ein SL so nah wie möglich gesetzt werden um denn Verlust klein zuhalten. Der Code:
Code:
//---------------------------------------------------------------------------------------------
//Kauf Signal
ST1 = OrderSelect(LongTicket,SELECT_BY_TICKET);
if(OrderCloseTime() != 0 || LongTicket == 0)
{
if((Open[1] > mt1) && (Open[0] > mt) && (A4B < Low[1]) && (AlG < Low[1]) && (Open[2] < Close[2]) && (Open[1] < Close[1]))
{
LongTicket = OrderSend(TradeOne,OP_BUY,LotSize,Ask,0,0,0,"Buy Order Signal",MagicNumber,0,Green);
LT1 = OrderSelect(LongTicket,SELECT_BY_TICKET);
double OpenPrice = OrderOpenPrice();
if(StopLoss > 0) LongStopLoss = OpenPrice - (StopLoss * RealPoint);
if(TakeProfit > 0) LongTakeProfit = OpenPrice + (TakeProfit * RealPoint);
if(LongStopLoss > 0 || LongTakeProfit > 0)
{
bool LongMod = OrderModify(LongTicket,OpenPrice,LongStopLoss, LongTakeProfit,0);
}
Comment("Kauf Signal");
OD = 0;
}
else
{
OD = 1;
}
}
//----------------------------------------------------------------------------------------------
//Verkauf Signal
ST2 = OrderSelect(ShortTicket,SELECT_BY_TICKET);
if(OrderCloseTime() != 0 || ShortTicket == 0)
{
if((LongTicket > 0)&&(OrderType()==OP_BUY))
{
ShortTicket = OrderSend(TradeTwo,OP_SELL,LotSize,Bid,0,0,0,"Sell Order gegen Trade",MagicNumber,0,Red);
LT2 = OrderSelect(ShortTicket,SELECT_BY_TICKET);
double OpenPrice = OrderOpenPrice();
if(StopLoss > 0) ShortStopLoss = OpenPrice + (StopLoss * RealPoint);
if(TakeProfit > 0) ShortTakeProfit = OpenPrice - (TakeProfit * RealPoint);
if(ShortStopLoss > 0 || ShortTakeProfit > 0)
{
bool ShortModOther = OrderModify(ShortTicket,OpenPrice,ShortStopLoss, ShortTakeProfit,0);
}
}
}
if(OD==1)
{
Comment("Kein Kauf Signal");
}
//-----------------------------------------------------------------------------------------------------------
// Trade "Verkauf" Schließen
if((LongTicket==0))
{
ST3 = OrderSelect(ShortTicket,SELECT_BY_TICKET);
if(OrderCloseTime() == 0 && ShortTicket > 0)
{
int Closed = OrderClose(ShortTicket,OrderLots(),Ask,0,Red);
}
}
}