Several customers have been wanting to trade TD Ameritrade / thinkorswim with algo trading and after they initially research this idea... they usually end up in an endless loop trying to backtest using TDA OnDemand (extremely limited), and then they also find out that although Thinkscript is easy to learn and similar to C#, there is no real way to actually enable (at least at this time and likely a while given the Charles Swab merger).
So... For these clients some of the suggestions we have been utilizing several setups for Algo Trading with Epic Collection. I do want to point out several pros and cons when algo trading with TD Ameritrade and NinjaTrader:
Cons (as far as I know, most of these are all known issues when searching the NinjaTrader forums):
1. TD Ameritrade doesn't provide tick data and doesn't seem to work well with intrabar setups where the stop loss might change over time.
2. Lots of errors pop up (which seems difficult or I can't find a way to disable) for things such as "no shares to short" messages. We ended up setting up only long setups.
3. When an OCO orders is placed with a profit target and stop loss... that cannot be changed throughout the duration of the order. So basically for any setups where you would ever want to change the stop loss or profit target, this is a problem.
4. We initially had problems when we would have hundred plus positions open with the NinjaTrader feature "Close all positions" at a specific time. Basically this would work great with 15 instruments but with 100 it would end up timing out and leaving positions open overnight!
We later added code into Epic Collection to set the trading session hours outside of the instrument trading hours. This is helpful for many reasons as there is also the option to flatten the strategy and end it if its running outside of that timeframe.
Pros:
1. No commissions!
2. Sometimes the trades for Epic VWAP or Epic Bid would be in/out over 250+ times per day for over 100+ instruments! Seemed to trade well, especially for setups where the setting was "OnBarClose" and at least a 5 minute or more data series.
3. Easily setup similar strategy that would run on percent basis with "Dynamic Quantity" enabled on the Epic Bid or Epic Follow strategy... With this we would run a daily import for specific stocks we wanted to target for the day, import this into a list within NinjaTrader, and then choosing the instrument for the strategy, choose "Select All" for the instrument list. This would end up creating 100+ strategies all with the similar parameters and all we have to do each morning is import the list, create the strategy one time and then right click on all of them and click "Enable".
PYPL trades well with Epic Follow... Epic Follow will look for correlation between index's or another instrument and if a major change in the index has occurred, and the same change has not occurred in the master instrument, it will enter in the appropriate direction to "follow" the index.