Ninjatrader has good integration with IB, Esignal and some other data venders. It's free of charge unless you want to auto trade and chart trade. Its charting capability is fairly good. The strategy wizards included in the package can help you learn the system fast too. The API documents are good. But its API is a mess comparing with other C# based trading system like OpenQuant. e.g. you can't do simple things like multiple symbols indicator without some C# hack (StrategyPlot.cs). It's .Net so trading systems run fast. But if you have a highly complicated system I'd suggest against it.