These are two VERY distinct things:
(a) Fundamental Data ( a source per-se )
(b) BackTesting integration into MT4
ForexFactory provides tabular access to (a), with some depth of the history, altogether with somewhat human-oriented navigation in html-tables for web browsing.
This does NOT mean, the same is machine-ready for integration into MetaTrader 4 Terminal tools, alike the Strategy Tester. Even the FFCal ( AFAIK ) is just a text-presentation of a copy of ForexFactory actual day textual values, not integrated into the Expert Advisor logic and does NOT provide means for "accelerated" run under Strategy Tester simulated flow of time.
This said, the solution requirement (b) dictates the approach to (a), right due to the fact, that successful Strategy Tester integration wins the both (a) and (b).
A working solution: MT4 with a proxy FundamentalNewsPROCESSOR
Example output from external FundamentalNewsPROCESSOR:
...
2016-12-27 4:30am high GBP Current Account Good?Bad for GBP
2016-11-03 5:00am high GBP EU Membership Court Ruling Good?Bad for GBP
2016-06-23 All Day high GBP EU Membership Vote Leave Good?Bad for GBP
2010-03-30 3:30am high GBP Final GDP q/q better 0.4% 0.3% Good?Bad for GBP 0.3%
2010-07-12 3:30am high GBP Final GDP q/q 0.3% 0.3% Good?Bad for GBP 0.3%
2016-06-30 3:30am high GBP Final GDP q/q 0.4% 0.4% Good?Bad for GBP 0.4%
2007-02-09 4:30am high GBP Goods Trade Balance -7.1B -7.0B Good?Bad for GBP -6.9B better -7.2B
2007-03-13 4:30am high GBP Goods Trade Balance better -6.2B -7.0B Good?Bad for GBP -7.0B -7.1B
2007-04-12 3:30am high GBP Goods Trade Balance worse -6.8B -6.4B Good?Bad for GBP -6.4B worse -6.2B
...
(-------------------------|--------|----------|------|-------|--------|-------|-------|-------|-------------|---------------)
(aTitleNAME | EVENTid| TIME | CCY | IMPACT| OPINION| ACTUAL| FCAST | PREV, | PREV_OPINION| PREV_REV_FROM )
(-------------------------|--------|----------|------|-------|--------|-------|-------|-------|-------------|---------------)
('Prelim GDP q/q', '61643', '7:30am', 'USD', 'high', '', '1.1%', '1.1%', '1.2%', '', '' )
('Fed Chair Yellen Speaks', '64178', '9:00am', 'USD', 'high', '', '', '', '', '', '' )
('Jackson Hole Symposium', '63417', 'All Day', 'ALL', 'high', '', '', '', '', '', '' )
works both in real-time & accelerated real-time, under StrategyTester simulation and all items are fully code-usable.