Simple Reason Forex Orders Fill Too Early [Misunderstanding]

Pending order Buy Limit was not filled in on GBPUSD

Over the last few years I have received and answered literally thousands of emails to my customers and one of the most interesting questions I get was this.

My BUY trade was triggered without price reaching the buy line or pending order. What would cause a trade to trigger early and how I can avoid it?

This is actually just a simple misunderstanding, but I found that a lot of people do not know about this, so I feel obliged to explain this.

Now to explain this in detail, so you could understand what this problem is about, I created a screenshot on my MetaTrader 4 (see below). This is a trading session using one of my trading tools, but the same can be seen even if you trade manually using pending orders.

Looks like price did not touch the upper range box breakout level, but actually it's the ASK price that touched it. This is why BUY trades was executed.

Looks like price did not touch the upper range box breakout level, but actually, it’s the ASK price that touched it. This is why BUY trades were executed.

Look at the picture above. This is a perfect example. See the price range box and its upper level? The trade should have been executed when the price touches the upper breakout level (plus +2 pips), but only when the price bars are outside the box. This is how my Range Box Trader works. You set it up to open trades on a breakout of a previous price and time range. Trading begins only when the price range is set at the specified time, which is considered the beginning of your custom trading session. For example, you set the price range box to be created from 02:00 until 08:00. This means at 08:00 EA will draw a price range, create two pending orders, one at the top and the other at the bottom of the range box, and start trading until 02:00 of the next day or whatever settings you use.

So in the example above even though the price bar (outside the box) did not touch the upper price range level (plus +2 pips), the EA still executed the BUY trade.

Let me explain what has happened here. The explanation is very simple. BUY orders are executed at ASK price, but MT4 charts do not show ASK price by default. This is why on the chart it looks like the trade was filled too early without price touching the entry level. But ASK price touched the entry price, it’s just not displayed on the chart anywhere.

You can set your MT4 to show ASK price on the chart and you can do this in the “Common” tab of the “Chart Properties” window (F8).

MT4 Chart Properties window's Common tab with a Show Ask Line option enabled

MT4 Chart Properties window’s Common tab with a “Show Ask Line” option enabled.

The ASK price is always above the current price (BID) you see on the chart. The price on the chart is a BID price. This is why it looks like price did not touch the breakout line. It’s the BID price did not touch it, but the ASK price touched it and that’s why BUY order was executed.


I remember how confusing this was for me several years ago, so let me try to explain it in a more simple way.

Every trading instrument has ASK and BID price. The difference between those prices is called The Spread. Say if ASK price is 1.12378 and BID price is 1.12366, then the spread, in this case, is 0.00012. In human language, this equals 12 points or 1.2 pips.

When you BUY (open LONG position) you always buy at ASK price. When you SELL (open SHORT position) you always sell at the BID price. Now because price bars on the MT4 charts are created using BID prices you never see what ASK price was before. You can only see current ASK price if you enable it to be displayed on the chart.

Below is the image which shows ASK and BID prices visible on the chart. The ASK price is the red line and you can change its color in the “Colors” tab of the “Chart Properties” window (F8).

MT4 chart with Ask price line visible

MT4 chart with Ask price line (red color) visible.

Closing orders

When you close a trade – it’s opposite. I mean when you close a BUY trade you close it at BID price (while it was opened at ASK price). When you close a SELL trade you close it at ASK price (while it was opened at BID price).

So this means that to hit a stop loss of a BUY order – the BID price should touch the stop loss level. To hit a stop loss of a SELL order – the ASK price should touch the stop loss level.

Also, let me explain how this affects the profit taking.

To hit the take profit of a BUY order – the BID price should reach the TP level. So if you have ASK price visible on your chart you will actually see how the ASK price reaches the TP of your BUY order, but it will not close the trade at TP level yet. The BID price should reach your TP to close the BUY order.

Now it is much more interesting with SELL orders. To hit the take profit of a SELL order – ASK price should reach the TP level. This means that your SELL order will not hit TP when you see the price bar (BID price) touch the TP level (even if it falls below TP level). This is the case that got confused a lot of traders for sure. They open a SELL trade, leave it to run for hours or days and when they come back they see that the price bar was actually at the TP level (or even crossed it by a few pips) but the trade was not closed.

SELL trade did not hit TP yet even though we see price bar already fell below the TP level. This is because ASK price (red line) should touch the TP level to close a SELL trade.

SELL trade did not hit TP yet even though we see price bar already fell below the TP level. This is because ASK price (red line) should touch the TP level to close a SELL trade.

In the image above the SELL, trade did not hit TP yet, even though we see price bar (BID price) already fell below the TP level. This is because ASK price (red line) should touch the TP level to close a SELL trade.

What about Trailing Stop and Break Even?

Imagine how confusing it will look like with the trailing stop or break-even functions. I get many questions about this from people who use my Trader On Chart application, but the same happens no matter what app you are using or even trading manually.

Everything is clear about the TS and BE for BUY orders. But BE and TS functions for SELL orders are applied using ASK price which is not recorded on the chart. When people count that the price fell 11 pips below the SELL order’s open price, they get confused why their break-even function was not applied when it is set to be activated at 10 pips in profit. The simple explanation here is that people calculate those 11 pips incorrectly. They calculate the profit of the SELL order by subtracting lowest BID price from a SELL entry price. In our example, it was 11 pips. But actually, it should be calculated by subtracting lowest ASK price from a SELL entry price, because SELL orders are closed at ASK price.

The confusing part here is that no one actually knows what ASK price was at that moment exactly because it is not recorded on the chart. But in our example, if the spread was 1.2 pips while BID price was 11 pips below the entry price, this means the ASK price was 1.2 pips above the BID price, which is only 9.8 pips below the entry price. So, unfortunately, the break-even function was not executed because the price had to move another 0.2 pips down.

Yes, this happens rarely, but still, it does and then a lot of traders get confused.

Test with STOP pending orders

Let’s do a test with STOP pending orders. I place a BUY STOP pending order and create a screenshot immediately when it is executed. You can see that BID price (price bar) did not even touch the pending order open price, but it got already filled because ASK price touched it.

BUY STOP is filled when ASK price reaches the entry price. BID price (price bar) did not even touched it yet.

BUY STOP is filled when ASK price reaches the entry price. BID price (price bar) did not even
touched it yet.

If I’d place a SELL STOP pending order it would get filled when the BID price touches it. But because price bars on the chart are drawn using BID price you will actually see price touching the pending order.

Test with LIMIT pending orders

With LIMIT pending orders it’s different. Actually, the rule is the same. BUY LIMIT gets filled at ASK price while SELL LIMIT gets filled at the BID price. However, the confusion can be created here when bar price (BID price) touches the BUY LIMIT order but it is not filled. It should be that way because BUY LIMIT only gets filled when ASK price touches its entry price, but many traders still get confused at this.

See the image below. I have a BUY LIMIT pending order where BID price already touched it. Obviously, it was not filled yet.

BUY LIMIT was not filled when BID price (price bar) reached the entry price. It will get filled only when ASK price touches it.

BUY LIMIT was not filled when BID price (price bar) reached the entry price. It will get filled only when ASK price touches it.

So like you probably already understand, in this example if the price were to reverse now and go up (without ASK price touching the entry price), my BUY LIMIT order would not get triggered even though on the chart you would clearly see that the price bar touched the entry price and even fell below it.

The same with SELL LIMIT orders. If you have a SELL LIMIT order it will only be triggered when BID price touches it. However, you will not experience the same confusion like with the BUY LIMIT. It would clearly be seen if price bar touched the SELL LIMIT entry price of not.

How to make it easier?

I would suggest keeping both lines (Ask & Bid) on your chart and choose a different color for each. Ask line can be red, and Bid line can be gray (default).

When you are ready for a BUY setup then only look at the red Ask line and ignore the grey Bid line. When you are about to close a BUY trade look at the gray Bid line only.

When you are ready for a SELL setup then only look at the gray Bid line and ignore the red Ask line. When you are about to close a SELL trade look at the red Ask line only.

This works for both, market and pending orders.


It does not matter when you learn about the confusing ASK and BID prices. Do not be ashamed if you did not know about this. I have created dozens of trading tools for MT4 years ago without even understanding this. But when I finally learn this it opened my eyes to feel the market much better.

Will you tell me the truth in the comments below? Did you actually know about this? 🙂

About the author

Rimantas Petrauskas

First I am a father, a husband and then the author of the book “How to Start Your Own Forex Signals Service”. I am also a Forex trader, a programmer, an entrepreneur, and the founder of Forex blog. I have created two of the most popular trade copiers and other trading tools for MT4 that are already used world wide by hundreds of currency traders.


Leave a comment
  • Thanks for this – I’ve been looking for a clear answer. The new question is – can we adjust this in MT4 so it is easier to know how to set SL. Because some of these differences between the Bid and the Ask are as much as 30pips.

    • Rick,

      we cannot adjust difference between Ask and Bid prices. This comes from the broker and this is literally their fee. The spread goes to the broker and that’s one of the way how they are making money.
      You can only choose different broker if you want to have different spread, as each broker can have different spreads.

  • Thanks, bud. Really helpful. I was pulling out my hair thinking of ways to avoid getting in prematurely, superficially adding 10 pips to my buystop or something, but now with your insight, I can be more specific and confident as to wth was going on!

  • Hi Rimantas,

    You’re one of the best Metacoders around on the net. Thousands of people should be thankful in my opinion. Great content and explanation. The truth is, i was unaware of commission on both buy and sell deal!

  • Thanks best information on bid & ask prices.

    – Always keep both the lines on your chart make Ask green (your choice) & let BID be grey default (your choice).
    1a. If you have a BUY setup you only see the green line and ignore the grey line then for exit it’ll always be grey line.
    1b. If you have a SELL setup you only see the grey line and ignore the green line for entry then for exit it’ll always be green line.

    This works for both Market and pending orders. Read the above 3 times and you’ll understand how easier your lives would become :p

    Color your ASK & BID lines to make your lives easier, just my 2 cents, cheers 😉

  • i fully understand your explanation above.
    but i want also to know about stop loss order. should my stop loss cater allowance of the spread if i have a specific stop loss level.
    For example , say eurusd. if 1.17200 is my buy stop loss target.
    Should i enter 1.17220 in my pending stop loss order ? or no need.

  • Thanks for the article. It is very helpful. I just wanted to add something that may makes it easier for remembering which price to look for.
    Every time we Buy, we buy at Ask price. Now to get out of that Buy order, no mater it is take profit or stop loss, we need to Sell the same amount of lots. And as every time we Sell, we sell at Bid price, then it means for a Buy order to close, it will be at Bid price.
    It is the other way for Sell orders of course.

Leave a Reply to Rimantas Petrauskas Cancel Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Copyright © 2009-2020. Rimantas Petrauskas | Terms and ConditionsPrivacy PolicyEarnings Disclaimer
Trading foreign exchange on margin carries a high level of risk, and may not be suitable for all investors. The high degree of leverage can work against you as well as for you. Before deciding to invest in foreign exchange you should carefully consider your investment objectives, level of experience, and risk appetite. The possibility exists that you could sustain a loss of some or all of your initial investment and therefore you should not invest money that you cannot afford to lose. You should be aware of all the risks associated with foreign exchange trading, and seek advice from an independent financial advisor if you have any doubts.
The purchase, sale or advice regarding a currency can only be performed by a licensed Broker/Dealer. Neither us, nor our affiliates or associates involved in the production and maintenance of these products or this site, is a registered Broker/Dealer or Investment Advisor in any State or Federally-sanctioned jurisdiction. All purchasers of products referenced at this site are encouraged to consult with a licensed representative of their choice regarding any particular trade or trading strategy. No representation is being made that any account will or is likely to achieve profits or losses similar to those discussed on this website. The past performance of any trading system or methodology is not necessarily indicative of future results.
Clearly understand this: Information contained in this product are not an invitation to trade any specific investments. Trading requires risking money in pursuit of future gain. That is your decision. Do not risk any money you cannot afford to lose. This document does not take into account your own individual financial and personal circumstances. It is intended for educational purposes only and NOT as individual investment advice. Do not act on this without advice from your investment professional, who will verify what is suitable for your particular needs & circumstances. Failure to seek detailed professional personally tailored advice prior to acting could lead to you acting contrary to your own best interests & could lead to losses of capital.

Copyright © 2009-2021. Rimantas Petrauskas | Terms and Conditions | Privacy Policy | Earnings Disclaimer
Malcare WordPress Security