can somebody help me please with this OrderSend, it's driving me crazy.
ticket=OrderSend(Symbol(),OP_BUY, Lots,Ask + 10*Point,3,0,Ask+40*Point,"BTM ",16345,0,Green);
Giving each time Error 129 or 130 wen I use a stop loss
I'm amazed it works at all. I can't get this to place orders even without a stop loss, and I think there are two separate problems.
Firstly, you're placing a market order (OP_BUY), but you're specifying a price other than the current ask price (Ask + 10 * Point). If you want to place a pending buy order above the market, use OP_BUYSTOP. But you need to make sure that the requested entry price is at least MODE_STOPLEVEL from the current ask.
Secondly, a t/p or s/l on a buy order is effectively a sell order, and gets taken out at the bid. Are you calculating your s/l from the current ask, or the current bid? If the former, then your s/l may be too tight - it needs to be at least MODE_STOPLEVEL from your entry price (for a stop or limit order) or from the current bid price (for a market order).
I'm amazed it works at all. I can't get this to place orders even without a stop loss, and I think there are two separate problems.
Firstly, you're placing a market order (OP_BUY), but you're specifying a price other than the current ask price (Ask + 10 * Point). If you want to place a pending buy order above the market, use OP_BUYSTOP. But you need to make sure that the requested entry price is at least MODE_STOPLEVEL from the current ask.
Secondly, a t/p or s/l on a buy order is effectively a sell order, and gets taken out at the bid. Are you calculating your s/l from the current ask, or the current bid? If the former, then your s/l may be too tight - it needs to be at least MODE_STOPLEVEL from your entry price (for a stop or limit order) or from the current bid price (for a market order).
Many many thanks for your help.
I corrected the problem and now it works but with OP_BUYLIMIT, I'm placing a stop loss and a take profit values in my order.
Can you explain what is the difference between OP_BUYLIMIT and OP_BUYSTOP ?
I had also to place a pending sell order and I used OP_SELLLIMIT.
Many thanks agai
Can you explain what is the difference between OP_BUYLIMIT and OP_BUYSTOP ?
I'd have a look at this: https://book.mql4.com/trading/orders
A buy limit enters at a price below the market (e.g. limit of 1.3200 versus a current ask of 1.3300). A buy stop enters when the market rises to the given price (e.g. stop at 1.3400 versus a current ask of 1.3300). Vice versa for sells: a sell limit is a higher price than the current bid, and a sell stop is a price below it.
Alternatively, you can think of it in terms of a limit order placing a limit on the amount you're prepared to pay - for example, you want to buy some EURUSD, but the current ask is 1.3300 and you're not prepared to pay more than 1.3200.
Alternatively, you can think of it in terms of a limit order placing a limit on the amount you're prepared to pay - for example, you want to buy some EURUSD, but the current ask is 1.3300 and you're not prepared to pay more than 1.3200.
I have always favoured buy/sell stop orders.
Your succint example has helped me think outside the box...
A gold star is in the post :)

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
can somebody help me please with this OrderSend, it's driving me crazy.
int ticket;
ticket=OrderSend(Symbol(),OP_BUY, Lots,Ask + 10*Point,3,0,Ask+40*Point,"BTM ",16345,0,Green);
Giving each time Error 129 or 130 wen I use a stop loss
Thanks