I am developing a C++ tick backtester intended primarily for FX. It is capable of testing 100+ million ticks under a minute with a simple martingale test strategy. The tester was originally intended to develop DLL strategies that could be used with a standard MT4 terminal but considering limitations of automation of MT4 client (e.g., cannot be used with multiple instruments, debuggability of DLL is worse than standalone application in MSVC) I am now considering extending the tester to live trading using either MT4 API or IB API. The reason for MT4 is there are many MT4 brokers that it can be used with but MT4 API is not free and not perfect. Also easy to convert MQL4 advisors. IB is more powerful, has C++ socket API and is free, but this is only one broker. What would you choose and why?