Why didn't this buy limit trigger?

I placed a buy limit while looking at the 1H chart for EURJPY. It gapped down and opened below the limit order but didn’t trigger it when it crossed the limit. M1 graph below indicates the gap down and cross.

I expected this behavior to trigger the buy limit. Is this something restricted to MT5 maybe? Or is it because there was no recorded data going below the limit order and it ignored it because it considered it a buy stop instead?

regards, Dims

It triggered this time. Can’t figure out it didn’t trigger on the minute candle just before it either. Maybe intra-minute gaps that caused it to be seen as a buy-stop again? Dunno.

Hi,
Did you look at the open interest and traded volume around that price point? It is common that there may be buy orders in place for 1,000 traders at a specific price, but in reality there is only one seller at that price, so your own trade will be in the queue, and your order may not be triggered on the fist or any subsequent price until all orders at or below that level have been filled.

I had a Crypto order filled at 7:15 pm yesterday that had been in place since 29May21. Price action had hit my buy limit seven times before my trade filled, but the volume was really low compared with the volume in the queue. The broker (exchange in this case is Bittrex) shows a level 2 depth chart that is useful in assessing whether your limit order will be filled. Forex is (in theory) so much more liquid, but in practice, it depends on your broker and how much of the total market liquidity they are serving to their own trading customers

1 Like

Would it affect demo trading (I should’ve mentioned this was a demo account)? I didn’t think it should but I’m too new to know for sure.

I was always under the impression that volumetric data wasn’t available for forex and that you could gauge open interest from COT reports a day later? Because of your suggestion I decided to check tick volume and was pleasantly surprised to find it reported minute by minute. My newbie head reasons this is the tick volume against my specific broker, that it can report in real time and display on my platform? Again, too new and unsure to nail it.

That gap down earlier happened at a minute past midnight as per MT5 platform (UTC +3). MT5 doesn’t have the option of changing timezones. Perhaps because of day end data reconciliation/reporting the specific tick volume for 00:00 isn’t available. 23:59 = 2 ticks & 00:01 = 3 ticks.


The tick volume when the trade triggered was a more significant 124, at 03:04. The weird thing is that the tick volume the minute earlier, at 03:03, was higher at 172. I believe my buy limit should’ve triggered at the higher volume when it went below price and closed above it.

There is a “Depth of Market” tool offered by MT5 that I think is supposed to display L2 data. But I don’t know if it’s available for FX. To be honest I don’t even know how to read it atm because I never figured I needed it.

You know what? I’m going to ask my broker what’s going on. I’m really curious to know what happened after your anecdote. Thanks so much :slight_smile:

Will post an update if and when I get a reply.

Was reviewing some of my pending trades and realised I’d missed another one. And it clearly shows it’s low crossing below the buy limit. I’d be huffing and puffing if this weren’t a demo I reckon :rage:

I don’t usually go below the H1 charts unless stuff like this happens so it’s initially very confusing looking at this.

The M1 chart looks worse. The buy limit lies in the middle of 4 candle bodies, 2 of which have tick volumes > 100 for those minutes.

.

I’ll have to ask my broker what’s going on. I probably need to adjust my outlook on these orders and place buy limits higher with the hopes of more intersections with price action.

MT4 charts show bid price. Since you are buying, you need the Ask price to hit your price, not the bid price. Without knowing the spread at the time, there is no way to tell if your price actually did reach your pending order price. Once that happens they can look at filling the order. It’s not impossible for a price to be hit and the trade cannot be filled because your volume exceeds the top of book price displayed. Unfortunately in forex we don’t have partial fills, so if the order cannot be filled in it’s entirety, it doesn’t get filled at all.

2 Likes

Ye, I didn’t think about the spread. In the second example the penetration is just barely there. In the first example when the 03:04 candle triggered the buy limit the penetration was deeper than the previous candle.

I’m a bit less inclined to believe volume being the issue. I placed the min order permitted @ 0.01 lots at the time. Could be a combination of both what you and @Mondeoman said. Just not enough sales at the lower ask price to fulfill my buy limit.

I’ll still write to the broker to clarify and ask them for information on the spreads for all their pairs. Thanks.

Yup, It isn’t a volume problem. I just wanted to make the point that the price you see is not always able to be delivered. Also there is unlimited liquidity on a demo account so definitely not the issue.

Have you heard or come across issues where volume was an issue? Just curious as heck tbh. I thought the order executions on my platform were specific to my broker (“Fill or Kill” & “Immediate or Cancel”). Didn’t know partial fills weren’t a thing in FX.

I wouldn’t go as far as calling it an issue but if you watch enough trades, you will see the price block turns yellow when it is hit. I have seen a few times that it goes yellow and then goes back to green, indicating that the broker could not fill the trade. The issue is not liquidity per se but depth of liquidity. You must remember that a limit order is a “at/or better” price, in other words the broker cannot slip you to fill your order - he has to fill the complete order at your price.

Next thing to bear in mind is the price you see is top of book price ie it it might only be 0.01 lots available at that price and they cannot fill a 0.1 lot order with that and since they cannot slip you they cannot fill the order, even if the price was hit. As I said not really a major issue but worth bearing in mind.

Partial fills is a thing that you often see on the stock market but it does not happen on the FX market. I don’t know if that is a good or a bad thing…

I think this has to do with the bid and ask price charts. First and foremost before checking your charts, know if you’re actually looking at the bid price chart or ask price chart. Long and short positions open and close differently depending if you’re looking at the bid/ask chart.

OK. I didn’t realise my broker put up it’s average spreads online. When I eyeball the spreads on MT5 it makes more sense to 2x the advertised avg spreads.

For EURJPY:

  • Advertised Spread = 0.41
  • 2 x adv spread for calc = 0.82
  • Candle 1 low = 133.146
  • Candle 2 low = 131.142
  • Buy limit = 133.150
  • Trigger candle = Candle 2
    EURJPY-spread
    Another way I understand this is that a buy stop @ 133.155 should be average requirement for a trigger against candle 1.

For EURJPY:

  • Advertised Spread = 0.76
  • 2 x adv spread for calc = 1.52
  • Candle low = 121.468
  • Buy limit = 121.475
    5 Candle lows intersected the buy limit. The lowest of all 5 candles is the candle low.
    CHFJPY-spread
    Two ways of looking at this:
  1. I would’ve needed a candle low of 121.460 to hit the buy stop.
  2. A buy stop at 130.484 would’ve been triggered by the candle low.

TLDR = -1/2 pips to Buy limits. +1/2 pips to Sell limits. Might as well do ± 5 tbh.

@kennyhubbard, Do you use another platform to see these blocks? I don’t know where this is available in MT5, if at all it’s there.

Did a quick read. Tthe Instant or Cancel fill policy apparently allows partial fills, atleast according to the MT5 user guide. I’ll try it on another demo account. Pick an exotic rarely traded currency maybe with super low liquidity and try to blow up the account, just to see if i get a partial fill.

@RjayBulaong, I didn’t understand where to find it at first. Could you be referring to something like this?
EURJPY-MW
I initially removed most of the additional windows in my client. Too much info to digest at the time. Now it makes more sense. I don’t know of any bid/ask charts elsewhere tbh.

The math is so frickin wrong I wanna cry. I effectively quadrupled the avg spread. Dumb@$$. I’ll look at it later and keep it private, atleast I know how the spreads are supposed to work (I hope).

Hi,
This is the sort of thread that new users really learn a lot from, so thank you for posting it. I had to check on wiki what UTC+3 hrs is, and it is central Europe (Moscow, Istanbul, etc). As you have rightly stated, that is midnight in London. From around midnight to 07:00 UK time, it is referred to as the Asian drift, where global volume is very low compared with the period 08:00 to 22:00 (EU open to NY close). During the Asian drift period, spreads widen, sometimes by a lot. It is not uncommon to see spreads of 2 pips widen to 5 or 6 pips. That is something you need to take account of if you are trading on tight stop losses. If you trade based on daily candles, and understand that daily Average True Range (ATR) is of the order of 100 Pips, not 10 Pips, you remove the vast majority of volatility that could easily stop you out of a trade with just “noise” or the widening of a spread. It could work in favour of scalpers, but it is widely acknowledged that the more unknowns you can remove from your trading plan, the more chance you have that your indicators will give true signals of when to enter, when to exit and where to set stop loss.

1 Like

Correction 1:

Nope. It should be UTC +2 if I understand it right but the direct quote from here explains it better. Also confirmed at the MT5 forums.

“No. They are set on the MetaTrader 5 Trading Servers and GMT is used to standardize the pricing of the Exchange-Traded Futures Fills timestamps. The time zone of our trading servers is always GMT+2 winter time and GMT+3 summer time.”

Correction 2:

No. It represents tick volume against all brokers from what I understand is a shared liquidity pool. Confirmed by someone with close ties in the dealer side here. Better explained in this scr shot, sourced from here.

Correction 3:
While the principle, I think, I got right, the fundamental math was off. My broker offers two account types (zero commission/classic accounts) that are impacted differently by the spreads. I’ll have to understand how spreads affect my “classic account” type, where the commissions are baked into the spread. As per dealer FAQ:

“The difference between The ZERO And Classic is the cost of the account. One is where spreads start from 0.0 pips (ZERO spread) + USD 4.50 commission (The ZERO). The other is The Classic Account where the commission is included in the spread. ZERO total cost to trade is roughly around 0.5 pips, whereas the classic is about 0.9 with all costs included”

It is very pleasing to see this depth of analysis, which I believe is fundamental for being able to eventually eliminate any and all mistakes from a trader’s plan, with the best chance of becoming profitable in the long run. Well done on this one.

Thanks! Ye, trying to ingrain all these bits of details at this stage should put me in a better position to go live. Past two days I’ve made a some significant improvements to my workflow, that germinated from the questions I had in this thread. All in all, really good :slight_smile:

Correction 4

That whole idea about blowing up a demo account to determine partial fills is a ridiculous idea. No practical purpose at all. It’s just a sometimes retarded obsession of mine to test edge case scenarios. Dug around a bit and here’s a quote I found from 2011 that makes this whole test obsolete.

Jezzode, I have a friend who has about $200M in net assets, for trading Forex solely. Let me tell you, I’ve asked him the same question, and from what he has stated, unless you are trading with $75-100M, liquidity won’t be an issue at all. Especially for the Fiber and Cable, I would assume.

Also, I’ve had the privilege to place (hit the “enter” button) a trade for a fund for 200 lots ($2000/pip) and still no liquidity problems. You don’t have to worry about 30 lots, it’s still considered “puny”.

I think that is an overly simplistic view and does not consider the retail trader. Liquidity is always an issue. If it wasn’t there would be no such thing as slippage. Let’s pretend you are trading widgets and the Ask price you see is 100, so you enter an order for 10. Unfortunately, the price that you saw was top of book so there was only 1 widget at that price…no problem, it’s yours but the next available widget is priced at 110 and there are 2 of them…no problem, they are also yours. The next level is at 120 where there are 5 available and they are also yours and finally, you will get your last 2 for 130.

What you see coming back is your trade filled(and in the blink of an eye) but the price you paid was 118 (1x100 + 2x110 + 5x120+2x130 all divided by 10).

You order was filled and you could argue that there is no liquidity issue, but your price was 18 points off because of slippage. This slippage is a direct function of depth of liquidity.

Now institutional traders most probably have access to far better trading conditions than us retails traders using MT4(or 5).

2 Likes

The market might have taken a turn just before it was to hit the limit. I don’t see any other reason for it not triggering.

The price did cross the limit orders and the low price against the candle clearly shows it went below the price. But I didn’t consider the broker spread when I placed my buy limits.

My account isn’t commission based. Basically, the broker makes money from adding an extra charge on the spread. For e.g. I want to buy at 113.15 in the example below. The broker will not sell it to me if the liquidity provider is quoting the same price because he/she has to make some money. Broker will sell it to me when the price reaches lower, at maybe 113.00, so he can pocket the pip difference.

The broker spread varies between currency pairs, account types and from broker to broker.