Python Development Environment / Jack's Technology Stack


jack

Administrator
Staff member
Hi Jack,

No worries, I can understand. I was planning on doing something similar as I had to keep with multiple API's for different brokers.
Do you think you can share have you abstracted the incoming feed? (If you have any reference for incoming abstract.py it would be useful, it can avoid me potential rewrite of API multiple times)
I standardized on one format.. so strategies I've written can all use the same code and, if needed, dig into the data structure I've stored in memory in the same way regardless of the source vendor. This means when I write a new 'connection agent' that handles a quote feed, I parse the quote data and rebroadcast it in my own format.

An example flow:
  1. The vendor might use a websocket to broadcast a JSON object.
  2. That JSON object will be read by my agent and converted into a string that is formatted for my platform to use internally.
  3. The newly reformatted data gets broadcast to any strategy or code that's subscribed to it.
  4. If a strategy class had subscribed to it, up on reading the incoming broadcast, it stores a copy locally for ad-hoc reference, and then triggers an event.
  5. Should the event have user defined code set to run upon being triggered, that code runs (strategy logic, etc..)

I hope that helps.
 

jack

Administrator
Staff member
Jack

What Python 3.x IDE do you use or recommend?
Still using Visual Studio Code and IDLE for 99.9% of my coding and workflow.

VS Code for the heavy lifting, and IDLE for quick testing of concepts / shell use.

While not exactly an IDE, but still related to coding and workflow:

There's been a huge shift toward Jupyter Notebooks on the data analysis side of the industry, and I've read up on many people having worked this into their algo development workflow. . . perhaps I'm missing out, but I still would rather play with objects in a shell and output to Excel for further analysis. At least, I haven't found a use case where the visual side of Jupyter has increased my efficiency...

All that said, the one project that might change my mind on Jupyter Notebooks is D-Tale:

I've been playing around a bit with D-Tale and it's pretty nifty. More related to idea generation and analysis than coding up functional / production trading algos, but figured I'd point it out.
 

rod178

Well-Known Member
Jack

I've decided to use Spyder3 IDE. Also will look at using Anaconda for data analysis etc. It includes Spyder, as well as Jupyter Notebooks and a lot more, so an all in one. Maybe overkill although so far I like what I see https://docs.anaconda.com/_downloads/9ee215ff15fde24bf01791d719084950/Anaconda-Starter-Guide.pdf

Simple code text editor of choice is Notepadqq, a clone of Notepad++, which I previously used before permanently escaping to Linux.

I have still yet to look at https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/what_is_jupyter.html
 
Last edited:

Top