To answer this question, we'll first need to look at how the bars are formed in your trading platform:
Since the Ask price is equal to the Bid price plus the spread, the minimum Ask price equals the Low plus the spread and the maximum Ask price equals the High plus the spread.
So why wasn't my order triggered? Let's say you sell EURUSD at 1.2250, placing a Stop Loss at 1.2340 and a Take Profit at 1.2190. The spread on EURUSD is 2 pips.
Referring to the list above, you can see that a Stop Loss on a Sell order will be triggered when the Ask price hits the order level (since a short position is effectively closed by a Buy order and you buy at the Ask price). The Stop Loss on your Sell order will be triggered when the Ask reaches 1.2340 or higher. Keep in mind that the price in your MT4 chart is the Bid price. So the order will only be triggered when the High in MetaTrader is 1.2338 (1.2340 minus the 2-pip spread) or higher.
Like Stop Loss orders, Take Profit orders on Sell positions are also triggered when the Ask price reaches the order level. The Take Profit order on the position above will be triggered when the Ask price reaches 1.2190 or lower. This means that the order will be triggered when the Bid price is 1.2188 (1.2190 minus the 2-pip spread) or lower. Since the Low price in MT4 is based on the Bid price, we can conclude that the order will only be triggered when the Low in MetaTrader reaches 1.2188.