//+------------------------------------------------------------------+
void processSignalHasPositionOpen(const int signal)
{
switch(OrderType())
{
case OP_BUY: // A buy order exists
if(signal<0)
{
Print("Short Conditions Met");
// здесь
if(!OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Violet))
{
Print("Error closing buy order: ",GetLastError());
} else if(OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,sellStopLossPips,sellTakeProfitPips,"TRAIDE EA",magicNumber,0,Red)<0) {
Print("Error opening sell order: ",GetLastError());
}
} else if(signal>0) {
Print("Long Conditions Still Met");
}
break;
case OP_SELL: // A sell order exists
if(signal>0)
{
Print("Long Conditions Met");
// и здесь
if(!OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Violet))
{
Print("Error closing sell order: ",GetLastError());
} else if(OrderSend(Symbol(),OP_BUY,lots,Ask,slippage,buyStopLossPips,buyTakeProfitPips,"TRAIDE EA",magicNumber,0,Green)<0) {
Print("Error opening buy order: ",GetLastError());
}
} else if(signal<0) {
Print("Short Conditions Still Met");
}
break;
default:
Print("Error, unexpected OrderType: ",OrderType());
break;
}
}
//+------------------------------------------------------------------+