Can someone help me with this? My BE code keep calling OrderModify() even though criteria wasn't met. I keep getting error 130. If criteria is met, it modifies the SL and the error 130 stops.
void TrailStops()
{
int total=OrdersTotal();
for (int cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS);
int mode=OrderType();
if ( OrderSymbol()==Symbol() )
{
if ( mode==OP_BUY )
{
if ( Bid-OrderOpenPrice()>Point*BreakEven && (OrderStopLoss() < OrderOpenPrice())) //if Bid price had moved above the BreakEven value
{
double newBuyStop = NormalizeDouble(OrderOpenPrice()+Point*10,digit); //Set new stoploss at 1pip above orderopenprice
OrderModify(OrderTicket(),OrderOpenPrice(),newBuyStop,OrderTakeProfit(),0,LightGreen);
}
}
if ( mode==OP_SELL )
{
if ( OrderOpenPrice()-Ask>Point*BreakEven && (OrderStopLoss() > OrderOpenPrice())) //if Ask price had moved belove the BreakEven value
{
double newSellStop = NormalizeDouble(OrderOpenPrice()-Point*10,digit); //Set new stoploss at 1pip below orderopenprice
OrderModify(OrderTicket(),OrderOpenPrice(),newSellStop,OrderTakeProfit(),0,Yellow);
}
}
}
}
}
void TrailStops()
{
int total=OrdersTotal();
for (int cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS);
int mode=OrderType();
if ( OrderSymbol()==Symbol() )
{
if ( mode==OP_BUY )
{
if ( Bid-OrderOpenPrice()>Point*BreakEven && (OrderStopLoss() < OrderOpenPrice())) //if Bid price had moved above the BreakEven value
{
double newBuyStop = NormalizeDouble(OrderOpenPrice()+Point*10,digit); //Set new stoploss at 1pip above orderopenprice
OrderModify(OrderTicket(),OrderOpenPrice(),newBuyStop,OrderTakeProfit(),0,LightGreen);
}
}
if ( mode==OP_SELL )
{
if ( OrderOpenPrice()-Ask>Point*BreakEven && (OrderStopLoss() > OrderOpenPrice())) //if Ask price had moved belove the BreakEven value
{
double newSellStop = NormalizeDouble(OrderOpenPrice()-Point*10,digit); //Set new stoploss at 1pip below orderopenprice
OrderModify(OrderTicket(),OrderOpenPrice(),newSellStop,OrderTakeProfit(),0,Yellow);
}
}
}
}
}