IB API works very smoothly with options.
A good system needs to have a few parts:
1) The ability to fetch and sort and analyze (e.g. indicators) the right data you'd want to use.
2) The ability to back-test, I find this module the most important in the system.
3) Order Entry algorithms
4)...