Why can I only open a BUYSTOP, cannot open a BUYLIMIT?

 

My code is:

// open buy 

      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,0,"BUY",123,0,Green);

// open buystop

      ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+BuyStopLevel*Point,3,Bid+BuyStopLevel*Point-StopLoss*Point,0,"BUYSTOP",456,0,Green);

// open buylimit

      ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-BuyLimitLevel*Point,3,Bid+BuyLimitLevel*Point-StopLoss*Point,0,"BUYLIMIT",789,0,Green);


BUY and BUYSTOP can be opened, but BUYLIMIT didn't be opened. I don't know why.

 

I checked the code and found errors with the stoploss setting. Here is the correct code:

      // open buy 

      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,0,"BUY",123,0,Green);

      // open buystop

      ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+BuyStopLevel*Point,3,Bid+BuyStopLevel*Point-StopLoss*Point,0,"BUYSTOP",456,0,Green);

      // open buylimit

      ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-BuyLimitLevel*Point,3,Bid-BuyLimitLevel*Point-StopLoss*Point,0,"BUYLIMIT",789,0,Green);