Hello,
I am trying to place a buy limit order for XNGUSD.
Suppose, it is trading at 7.140 and I want to place an order when it crosses previous candle high of 7.155, it is not letting me place a buy limit order. It says price has to be 36 points above the current price which would be 7.176. So how do traders place order when they want to execute at price when it crosses previous candle high/low ?
Also, I will my order be skipped if the price crosses 7.155 without trading at it ?
The platform only displays bid prices. Buying can be done at the ask price. Due to the difference (spread) between Bid and Ask prices, you cannot buy at the price you see on the platform. In addition, the issue you mentioned as a problem is caused by the StopLevel applied by your broker company in the transactions. In limit orders, it may be requested to have a difference as much as the stop level.
Take some time to familiarise yourself with contract specifications like Stops Level and Freeze Level that are set by the broker, as well as Ask, Bid and the Spread.
The following is for MetaTrader 4 but it also applies to MetaTrader 5:
Requirements and Limitations in Making Trades
Tables below show calculation values that limit the conduction of trades when opening, closing, placing, deleting or modifying orders.
To get the minimum distance to StopLevel and freezing distance FreezeLevel the MarketInfo() function should be called.
Requirements.
Correct prices used when performing trade operations.Order Type | Open Price | Close Price | Open Price of a Pending Order | Transforming a Pending Order into aMarket Order |
---|---|---|---|---|
Buy | Ask | Bid | ||
Sell | Bid | Ask | ||
BuyLimit | Below the current Ask price | Ask price reaches open price | ||
SellLimit | Above the current Bid price | Bid price reaches open price | ||
BuyStop | Above the current Ask price | Ask price reaches open price | ||
SellStop | Below the current Bid price | Bid price reaches open price |
The possibility of deleting a pending order is regulated by the FreezeLevel parameter.
StopLevel Minimum Distance Limitation.
A trade operation will not be performed if any of the following conditions is disrupted.
Order Type | Open Price | StopLoss (SL) | TakeProfit (TP) |
---|---|---|---|
Buy | Modification is prohibited | Bid-SL ≥ StopLevel | TP-Bid ≥ StopLevel |
Sell | Modification is prohibited | SL-Ask ≥ StopLevel | Ask-TP ≥ StopLevel |
BuyLimit | Ask-OpenPrice ≥ StopLevel | OpenPrice-SL ≥ StopLevel | TP-OpenPrice ≥ StopLevel |
SellLimit | OpenPrice-Bid ≥ StopLevel | SL-OpenPrice ≥StopLevel | OpenPrice-TP ≥ StopLevel |
BuyStop | OpenPrice-Ask ≥ StopLevel | OpenPrice-SL ≥ StopLevel | TP-OpenPrice ≥ StopLevel |
SellStop | Bid-OpenPrice ≥ StopLevel | SL-OpenPrice ≥ StopLevel | OpenPrice-TP ≥ StopLevel |
FreezeLevel Limitation (Freezing Distance).
Market orders can not be closed if the StopLoss and TakeProfit values violate the FreezLevel parameter requirements.
StopLoss or TakeProfit orders can not be modified if StopLoss or TakeProfit values violate the StopLevel parameter requirements.
Pending orders can not be deleted or modified if the declared open price violates the FreezeLevel parameter requirements.
Order Type | Open Price | StopLoss (SL) | TakeProfit (TP) |
---|---|---|---|
Buy | Modification is prohibited | Bid-SL > FreezeLevel | TP-Bid > FreezeLevel |
Sell | Modification is prohibited | SL-Ask > FreezeLevel | Ask-TP > FreezeLevel |
BuyLimit | Ask-OpenPrice > FreezeLevel | Regulated by the StopLevel parameter | Regulated by the StopLevel parameter |
SellLimit | OpenPrice-Bid > FreezeLevel | Regulated by the StopLevel parameter | Regulated by the StopLevel parameter |
BuyStop | OpenPrice-Ask > FreezeLevel | Regulated by the StopLevel parameter | Regulated by the StopLevel parameter |
SellStop | Bid-OpenPrice > FreezeLevel | Regulated by the StopLevel parameter | Regulated by the StopLevel parameter |
- book.mql4.com
Hello,
I am using octafx as a broker. I want to place a buy order for GBPUSD at 1.30235 or any price above above (which was the high of previous candle). So is buy stop order the right one for this order execution ? Also, it is allowing me to place the order only above 1.30252 which is way above the previous candle high which is my entry point. In market depth, we can see that buyers and sellers are at 1.30219 and 1.30228. So how do I execute this order when price crosses previous candle high ?
Hello,
I am using octafx as a broker. I want to place a buy order for GBPUSD at 1.30235 or any price above above (which was the high of previous candle). So is buy stop order the right one for this order execution ? Also, it is allowing me to place the order only above 1.30252 which is way above the previous candle high which is my entry point. In market depth, we can see that buyers and sellers are at 1.30219 and 1.30228. So how do I execute this order when price crosses previous candle high ?
If in this situation you cannot place a pending order below the price of 1.30235, then you should check the properties of the symbol (in particular, the freeze levels). If freeze levels are indeed set for this symbol, then you only have to work with market trade orders.
If you buy when the Ask crosses above the previous candle high, you are opening before the market crosses.
You place your pending buy at the high plus the average spread.
1.30252 is not "way above." It is 1.7 PIPs above the market 1.30235) when you have a spread of 0.9 PIPs
If you buy when the Ask crosses above the previous candle high, you are opening before the market crosses.
You place your pending buy at the high plus the average spread.
1.30252 is not "way above." It is 1.7 PIPs above the market 1.30235) when you have a spread of 0.9 PIPs
If you buy when the Ask crosses above the previous candle high, you are opening before the market crosses.
You place your pending buy at the high plus the average spread.
1.30252 is not "way above." It is 1.7 PIPs above the market 1.30235) when you have a spread of 0.9 PIPs
Hi all,
I've a similar issue for a test. I understand that a buy order is likely to be executed rather immediately if OrderSend() is used with an Ask price. Though, I'm wondering if it's possible to be executed at a better price.
For example: I'm using a pending/buy limit order (start of new bar) with an entry price equal to the average of the previous bar close and the ask price (time expiration equivalent to one bar). I'm also using IOC as order filling type.
Though, when using strategy tester in visualization mode even with real ticks, it seems tick based prices move on/around the pending entry price level, but the order is not executed.
Am I missing something in the interpretation?
Nb: no error msg (limit price format should be ok) and I can execute market orders at Ask price without any issue.
Hi all,
I've a similar issue for a test. I understand that a buy order is likely to be executed rather immediately if OrderSend() is used with an Ask price. Though, I'm wondering if it's possible to be executed at a better price.
For example: I'm using a pending/buy limit order (start of new bar) with an entry price equal to the average of the previous bar close and the ask price (time expiration equivalent to one bar). I'm also using IOC as order filling type.
Though, when using strategy tester in visualization mode even with real ticks, it seems tick based prices move on/around the pending entry price level, but the order is not executed.
Am I missing something in the interpretation?
Nb: no error msg (limit price format should be ok) and I can execute market orders at Ask price without any issue.
Did you not read the post above, namely "Requirements and Limitations in Making Trades"?
To be able to place a "Buy Limit" pending order, the opening price must be ... Ask-OpenPrice ≥ StopLevel
Did you not read the post above, namely "Requirements and Limitations in Making Trades"?
To be able to place a "Buy Limit" pending order, the opening price must be ... Ask-OpenPrice ≥ StopLevel
Retested it today. I could place the order (as previously - but also added this constraint to make sure); for now it seems the limit order is sometimes triggered and executed, and sometimes it isn't.
Which means it's likely not a matter of syntax or requirement/constraint imo, otherwise I'd have an error message.
In tester's visualization mode, once placed with IOC filling type I can see the pending order price level and the price moving on/around it (twice in 4 bars) without execution (test with M1 bar close or real ticks)
Any idea of something I should monitor?
Retested it today. I could place the order (as previously - but also added this constraint to make sure); for now it seems the limit order is sometimes triggered and executed, and sometimes it isn't.
Which means it's likely not a matter of syntax or requirement/constraint imo, otherwise I'd have an error message.
In tester's visualization mode, once placed with IOC filling type I can see the pending order price level and the price moving on/around it (twice in 4 bars) without execution (test with M1 bar close or real ticks)
Any idea of something I should monitor?
Please remember that the Chart only shows Bid prices, not Ask prices, and the trigger only happens when the "Ask" price is valid for the order (it is a "Buy" order). It also depends on filling mode and available liquidity.
PS! Enable the Ask price line on the chart for the current ask price. Candles however, will continue to only be based on Bid prices.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hello,
I am trying to place a buy limit order for XNGUSD.
Suppose, it is trading at 7.140 and I want to place an order when it crosses previous candle high of 7.155, it is not letting me place a buy limit order. It says price has to be 36 points above the current price which would be 7.176. So how do traders place order when they want to execute at price when it crosses previous candle high/low ?
Also, I will my order be skipped if the price crosses 7.155 without trading at it ?