Don't quit your job (same as advice given by a Market Wizard of systematic trading - @mhparker) Don't write your backtesting engine Expect to spend 3-5 years coming up with remotely consistent/profitable method. That's assuming you put 20h+/week in it. 80% spent on your strategy development, 10% on experiments, 10% on automation Watching online videos / reading reddit generally doesn't contribute to your becoming better at this. Count those hours separately and limit them Become an expert in your method. Stop switching Find your own truth. What makes one trader successful might kill another one if used outside of their original method. Only you can tell if that applies to you Look for an edge big/smart money can't take advantage of (hint - liquidity) Remember, automation lets you do more of "what works" and spending less time doing that, focus on figuring out what works before automating Separate strategy from execution and automation Spend most of your time on the strategy and its validation Know your costs / feasibility of fills. Run live experiments. Make first automation bare-bones, your strategy will likely fail anyway Top reasons why your strategy will fail: incorrect (a) test (b) data (c) costs/execution assumptions or (d) inability to take a trade. Incorporate those into your validation process Be sceptical of test results with less than 1000 trades Be sceptical of test results covering one market cycle No single strategy work for all market conditions, know your favorable conditions and have realistic expectations Good strategy is the one that works well during favorable conditions and doesn't lose too much while waiting for them Holy grail of trading is running multiple non-correlated strategies specializing on different market conditions Know your expected Max DD. Expect live Max DD be 2x of your worst backtest Don't go down the rabbit hole of thinking learning a new language/framework will help your trading. Generally it doesn't with rare exceptions Increase your trading capital gradually as you gain confidence in your method Once you are trading live, don't obsess over $ fluctuations. It's mostly noise that will keep you distracted Only 2 things matter when running live - (a) if your model=backtest staying within expected parameters (b) if your live executions are matching your model Know when to shutdown your system Individual trade outcome doesn't matter PS. As I started writing this, I realized how long this list can become and that it could use categorizing. Hopefully it helps the way it is. Tried to cover different parts of the journey.
Correct. The cost of time is huge anyway to do anything properly. I think the key with any large chunk of work is knowing what you're shooting for.
Yup. The downside with trading being that almost all ideas one will have (particularly if they're not grounded in a particular trading experience/privately known market inefficiency) result in failed tests. So it makes sense to assume any particular idea will fail ahead of time and plan accordingly; cutting time by NOT developing your own platform before an idea is proven makes sense. When you write your own platform you also have bugs to deal with, in the worst case one that take you days/weeks/months to debug. Regardless of whether your backtest or sim forward test shows success or failure the question inevitably is: Can it be trusted? Sitting on a fresh platform doesn't at all help with that. Same concern for live execution regarding stability. Of course, for an established algo trader that can be sure that something works, implementing a platform to do specifically that something is a much less hazardous decision. [I contend, because I never reached that point with fully automated trading with any consistency.]
Most of this applies to manual systems too. I like 9 and 10, personally. 9 is like the back testing engine. They are whole other systems to develop. If you have independent designs you can reuse a lot. For 10, a rule of thumb is validation time is equal to development time. When I ran out of things to test (9 months worth), I knew I was getting close and needed live data.
Disagree with point 2. Writing one's own analysis and testing platform (using existing code of course) is beneficial in forcing oneself to fully understand what is going on. Off the shelf platforms rarely provide all the features needed. And using others' approaches forces one to adopt to someone else's limitations in thought. Even when profiling ideas with python I highly recommend to write your own testing harness.
True but better to take longer than finding nothing because one would be forced to test and analyze data the same way the original architect did. That can often greatly limit artistic freedom and understanding of details. Am not talking about writing a comprehensive algo trading platform but designing one's own profiling and test architecture to try out ideas. I find that incredibly important and valuable.