Charts in MetaTrader 4 are generated using only Bid prices, but the orders for Sell positions are executed at Ask prices (you can see the both prices in MetaTrader 4 terminal, "Market Watch" window). The difference between these prices is a spread. Please take this fact into consideration when placing your pending orders.
Buy Limit" or "Take Profit" order that was placed on a Sell position has not been executed, although the price on a chart has reached the order's price. Why?