Quote from dareminator:
Wayne, great initiative.
On the programmer vs retail question: I suggest the open-source initiative to be for programmers by programmers. A great class architecture, tick & bar databases, backtesting environment, execution platform and decent documentation.
To generate revenue, you could create an openquant or ninjatrader like overlay application on top of this framework and either sell it as an application, or openly distribute in binary (or even source) and sell services for it.
I use a combination of OpenQuant and custom C# applications written to the InteractiveBrokers API for execution. I have been slowly building my own framework as I need new functionality. Judging from the TWSAPI forum, I think there are similar people out there. I would enjoy putting the same effort into an opensource framework, and in return getting the fruits of a larger community's labor.
I hope to see your alpha/beta release soon.
OMG, dareminator. That was a lovely post. It made me feel all mushy inside because you express EXACTLY my sentiments better than I did. Frankly, I wish someone else already had this project going because I also want to benefit from the collective contributions.
As far as your recommendation for the structure, that also is exciting because that's exactly how it works now.
Specifically, I have been careful to keep a very clean object structure for the engine itself. (It can always be improved, I'm sure.)
And the GUI part is separate and very simple right now. It only has a form with the date range you want to run, optional replay speed, and buttons to run either a back test, optimization, or live.
Finally, it has a progress bar and a log message window. Most log messages go to a log file but some important ones go to the app window. Hey. Tonight I'll post a few screen shots.
Depending on which button you push it may pop up one multiple chart windows to view. It writes all statistics to html format, a separate one for each strategy if you're running a portfolio.
So the sum total of the GUI right now is 2 classes. Form1.cs and the Chart.cs
The system is even broken into separate assemblies. The GUI which I hope will grow over time is one assembly.
The TickZoom engine, I call it, is another.
Oh, here's an example, right now you have to set optimization parameters in code, programmatically. There's no GUI for that yet. As far as the GUI goes, I've been only adding features if it saves me some time over changing it in the code.
But eventually for non-programmers, we'll have to make all this into a nice GUI. And maybe you're right, those can be the services that make this commercially viable.
It sounds like you're going one step further in suggesting that the programmer source-code-only version never has a fancy GUI--only the commercial one does. That might make sense if the community is okay with that. And I see your point as a programmer. I don't feel the need for a full blown GUI. Just a powerful library is nice.
Hmmm... that seems like a very clever model. Does anyone disagree?
What was exciting mostly about your post is that we have the same vision for the community of programmers.
It will only take a handful of us with this kind of vision to start a snowball effect that grows into something truly wonderful.
It's seems the key at the moment is to form all this conversation into the "roadmap" for the project. I'll post a draft shortly. That way we can tweak and get it clear very everyone.
Hey maybe after we get this going and prove it can be financially successful too, someone else or a company may agree to take it over.
We just need to make sure that we legally protect the code we contribute to make sure it is always open source and free.
The model I like for keeping the code public is to form an LLC which owns the LGPL license. Then any committers to the project get added as members to the LLC so their vote counts in any decisions related to the source code. That assures it will always stay open and free.
Sincerely,
Wayne