The Money Flow Index indicator (MFI) is an oscillator that uses price and volume to measure momentum. It’s also known as a volume-weighted RSI and can be used in a similar way.
In this article I will be testing a strategy that I found on a popular trading website.
Oversold MFI With Pin Bar Strategy
According to an article on TradingSim, an MFI(14) reading of below 20 indicates a stock is oversold and the price will likely increase. If that oversold reading is accompanied with a bullish price action bar (pin bar) “you could have easily placed a BUY order with confidence”.
The rules for this strategy then, is to go long a stock when we get a bullish pin bar candle and MFI(14) is under 20. We will then sell when MFI(14) moves above 80.
I tested this strategy using daily bars on S&P 100 stocks between 1/2000 – 1/2017. I used a position size of $1000 per trade on a starting capital of $50K and recorded the following results and equity curve:
- Net Profit on 50K: $19,675
- Total Return: 39.35%
- Annualised Return (CAR): 1.97%
- Risk Adjusted Return (RAR): 10.09%
- Maximum Drawdown: -30.11%
- CAR/MDD: 0.07
- Win Rate: 69.38%
- # Trades: 454
- Average P/L Per Trade: 4.38%
As you can see, the results of this strategy are not particularly good. Although the win rate and average profit per trade is high, the overall performance is poor and lower than buy and hold (CAR of 4.51% on SPY).
One glimmer of hope, however, would be to use a market timing filter. If it wasn’t for 2008 (where this system lost 17%) performance might have been OK. If you can turn this system off during bad market conditions then it might be worth further research.
What About Intraday?
At this point there is an argument for saying this strategy should be tested on intraday data and not daily data. After all, the website in question provides one example using five minute bars.
I therefore tested this strategy again using the same rules as before but this time using 5-minute bars for IBM stock. Following is an example trade set up that occurred on the 29th February 2016.
You can see that MFI dropped below 20 and we got a pin bar setup just after 12 pm so we went long on the next bar. We then closed the trade when MFI moved above 80 at 10:40 am the next day:
For this test, position size was set at $10,000 per trade and the simulation was run between 1/2000 and 1/2017. The following results and equity curve were recorded:
- Net Profit on 10K: $8,878
- Total Return: 88.79%
- Annualised Return (CAR): 3.81%
- Risk Adjusted Return (RAR): 28.47%
- Maximum Drawdown: -16.01%
- CAR/MDD: 0.24
- Win Rate: 67.28%
- # Trades: 654
- Average P/L Per Trade: 0.14%
At first glance, the results from this strategy are not particularly good either although the risk-adjusted return is OK. What we can say is that it is moderately better than using daily bars.
Actually, this strategy has performed better than the IBM buy and hold return which was 2.57% with max drawdown of -60%.
As usual, it is the case that most articles on the web about technical analysis are based on faith and not backed by any hard evidence. Such articles are usually written in a confident manner and can be quite harmful to readers.
In this case, two theories involving MFI(14) were tested and the results were not very good.
As it happens, MFI is actually a decent indicator and the strategies presented today may have been much better with a few simple adjustments.
In my experience, MFI has a lot of good traits. It is similar to RSI and I recommend users experiment with shorter lookbacks.
Simulations and charts: Amibroker
Historical data: EOD from Norgate. Intraday from Kibot.