Hi Jim, the Tkinter interface looks nice. Tkinter is nice and works well enough for simple dialogs and single-window applications. For more complex tools that handle lots of data and dynamic interactive graphing are better done in Jupyter Notebooks, or in desktop tools using PyQt Designer or PySide Designer. You can produce high-fidelity interfaces with the styling elements of JavaScript/CSS.
PyQt and PySide toolkits are nice because they provide every type of desktop windowing widget offered by the native windowing toolkit. They are also fully cross-platform (Windows, Mac OSX, Linux, mobile and embedded devices) with no platform-specific "tweaking" required. They require an intermediate understanding of Python object-oriented mechanics because their API wrappers map directly onto the native OS windowing toolkit C++ APIs.
Jupyter Notebooks are becoming the defacto platform for data science teams that need web front-ends for less technical users. I am preparing a set of tools and examples in Jupyter Notebooks for interactive widgets that analyze data pulled from TOS and stored in backend databases.
I have had limited time to learn the 2 or 3 decent ThinkOrSwim API wrappers available now. They are all good starting points but incomplete. We need to merge them together and provide better examples for how to use them for the different tasks of trading. I have been focused mostly on Python front-end tools, but my bottle neck has always been getting my TOS transaction data captured into a database automatically.
There are new Python-based interactive GUI frameworks coming out every month that wrapper React, Node.js, CSS, and other JavaScript front-end frameworks code and generate code for web-based GUIs. High-performance desktop GUIs require more powerful tools like Qt. Efficient web and desktop GUIs can generated, ala PyQt Designer and QML, and other GUI markup languages. I want to learn as few languages as possible, so I trying to do as much as possible in Python and Jupyter.
My point of view is that we should create classes of tools that brokers (TOS, IB, eTrde, others) have a vested interest in NOT providing.
1) A (near) real-time TOS-integrated local database for performance reporting on trades (PostgreSQL, MySQL, or SQL Server)
2) Open-source front end tools that analyze and display trade performance results.
3) Open-source utilities to help get data into and out of our trade analysis, trade selection, and trade monitoring tools.
4) Open-source data utilities to capture trading instrument data via APIs and web scraping tools and store them in databases.
4) Open-source algorithmic backtesting, simulation and trading tools (with good front-ends).
5) Open-source market and economic analysis tools.
I am not a high-frequency trader so I consider automated order placement and order management to be lowest in priority. I can overtrade and generate too many commissions on my own without having an automated system exacerbate the brokerage commission and fees taxes. I can use TOS and IB very well enough to place and monitor trades once I know what and when I want to trade. It is the tools "around" the brokerage trading platform that are missing. These missing tools partially account for the gap in performance between retail and professional traders.