This is good to know. Given this fact, I'm going to write a little summary of what I've read thus far (to the best of my understanding) to help me begin processing what you're up to. I'll then head over to GitHub and begin reading everything you wrote there to start "soaking in" as much of your explanations/descriptions as my head can handle.
I'm hoping this will help me speak more intelligently with coders if and when I start interviewing for someone to take what you've done and adapt it specifically to my system, if it turns out that this would make any sense at all.
To answer your question, I trade using the MT4 platform.
I learned enough MQL from watching Jim Dandy videos on YouTube and trying to decipher Ulrik Petersen's MQL Programmer's Guide to write simple EAs, but nothing sophisticated enough to handle my system in detail, and I'm not willing to try contracting someone from Fiverr or Upwork for such a major job, which is about all my budget can afford at the moment. I'm therefore looking forward to reviewing what you've done to see if any additional understanding as to exactly how coding works might "seep" into my brain.
Summary for myself:
This framework allows anyone who can code a bit to build and test a strategy, then run a trading robot. You can copy, modify, sell, or do whatever you want. There is no dependency on any third party server/setup/etc. It all depends on the data you collect yourself (which the framework helps you to manage) and the code you write.
You can change how it will execute orders (if at all, since you might just want it to send you a notification so you can review and trade manually) and you can even have it email you every time a trade is made.
It is extensible: Implement 2 interfaces to integrate with another exchange or broker to trade stocks, Forex, or whatever instrument you want to trade.
The purpose of the framework is to relieve programmers of the bulk of the work. Internally indicators have an “aggregator” for designated time intervals to aggregate the incoming data used to calculate values for given intervals, and then the next intervals will start to be filled. Hence, the main idea of this framework is to allow you to work with multiple time scales at the same time. (Most, if not all, other frameworks are fixed to the same time scale so that merging signals from different time scales is either hard or impossible.)
The framework’s unique characteristics/features make it preferable compared to almost all others. For example, quantopian/quantconnect depend on their platform so you have limited control over what you are doing. Pylivetrader loads all data in memory so it becomes hard to back test efficiently, especially if you are trying to emulate a live market situation (i.e., trading multiple symbols at the same time, using different time scales, etc.)
Backtrader is GPL3, which might give one pause in and of itself, and even though it is pretty complete, it is complex to use and difficult to find how to cleanly manage open orders (for example, when to stop a trade before one or more strategies give a sell signal). It is also difficult to optimize parameters efficiently, especially if you have thousands of combinations to test.
If you look at the optimizing section of the univocity-trader open-source trading framework, you’ll note that the construction is changed to use Parameters. This allows you to parameterize not only your strategy but every single thing in your code.
Also the framework forces you to create new instances in that way, either without parameters or with a Parameters implementation, so that simulations can be easily parallelized using all cores of your CPU.