lol, I kind of agree The Underpant Gnomes bear a striking resemblance to the vast majority of people trying to dive into algotrading (myself included). Maybe with the modification "Design, implement, and run trading strategy" as Step 1.
Well surely:
- Regardless what you lump in step 1, there's a huge question mark between that and "Profit!".
- This is all kinda funny
And speaking of funny...
1) Design trading strategy
2) Shop for Lambo's
3) Opps, now I have to sell muh truck.
I gotta ask, to be sure. This is humor, right? Lambo's stands for "Lamborghinis" and "muh" is a way of mispronouncing "my".
Nine steps, each very dependent on what had transpired in the prior step,.......
• Model market. (Form a statement of "How things work" against available evidence.)
• Assess model strengths. (e.g., "robust" profit generation)
(Separately then,...)
• Assess model weaknesses. (e.g., minimum loss excursions)
• Design strategy that exploits model strengths subject to given weakness' exposure.
• Backtest.
• Assess statistical performance. (Re-assessing strengths & weaknesses, really.)
• Assess/implement/test possible tweaks.
• Walk-forward, in-market.
(Lastly,...)
• Re-assess market+model; recycle, y'all.
This is quite an elaborate decomposition of the "?" step in The Underpant Gnomes pipeline
There are quite a few attempts at building and monetizing this pipeline, some of them still available, some (quantopian) failed. Here's a few:
-
https://arcadetrader.com/
-
https://www.quantconnect.com/
-
https://www.algotrader.com/ (for professional finance)
- [Defunct] Quantopian
I intend to build (program) yet another one, roughly I plan to support the following:
1) Import and visualize historical market data. You need data to base your research on, and the data I have access to (relatively cheaply) has errors in it. Errors are a huge problem in backtests because they generate false positives. Of course you analyze those results by hand afterwards and eventually figure out it's garbage, but it's time consuming and annoying to validate data by hand. So first useful feature (discussed here previously) will be curation of data. Ideally automatic but I'm also considering manual curation where a human being steps through each sample in the dataset and validates it (could be done on a few major names like SPX, QQQ etc).
2) Define trading strategies in such a way that they can be expressed in a fully algorithmic (programmatic) matter. This way you can backtest them on a wide set of underliers and timeframes, essentially:
deaddog said:
#2 Find proof that strategy doesn't work.
Also useful in ruling out "discretionary" strategies that require some key human ingredient that can't be grasped by a computer.
3) After passing the steps outlined by TomMcGinnis (will elaborate on those later), move strategy from "backtest" phase to "staging" phase. Run live tests on a virtual account connected to the market through an API. I'll support Interactive Brokers for starters since it's the only decent API available at retail level and covers options. (Do other brokers offer a decent API that covers options? I'm not aware of any). You want 3 things out of the staging phase:
a) The results from the live setup match the bactkests.
b) You're configuring and tweaking actual parameters you will use live. Capital you will use on every trade. Number of orders you'll send.
c) You correctly handle actual market events. What you do when you get partial fills and market moves away. Connection gets disconnected and reconnected again. Market moves like crazy and could cause your engine to trigger multiple times: do you have safeguards for that?
4) Run live. If all fine by step 4, moving from staging to live should be just a simple change in some configuration setting. IP of the endpoint the strategy application connects to.
So this is the basic setup I'm gonna cover, but I still have some administrative and philosophical subjects to debate, hope you will participate
