What about two licenses, such as 'subscriber' and 'commercial', with different charges for each.
The subscriber license would have access the binary files and any source that would generally be included (such as the custom indicators that are included in the product now).
The commercial license would provide access to the source code of the application (via private GIT), along with unlimited (internal) use rights.
There would be no functional difference between the compiled application. From a charging perspective you can continue down the path of a once-off (or annual fee) for the subscriber license, and a monthly (or annual) fee for the commercial license.
My guess is that the majority of retail traders are not also C# developers so would have no use for the commercial license anyway.
Your current source code license would probably not need to change too much in this case.
If you wanted to provide access to the source to your contributors, you would be able to issue them with a 'commercial' license allowing for multiple system internal use and the source code.