Advice for aspiring algo-traders

Discussion in 'Trading' started by ValeryN, May 23, 2021.

  1. ValeryN

    ValeryN

    1. Don't quit your job (same as advice given by a Market Wizard of systematic trading - @mhparker)
    2. Don't write your backtesting engine
    3. 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
    4. Watching online videos / reading reddit generally doesn't contribute to your becoming better at this. Count those hours separately and limit them
    5. Become an expert in your method. Stop switching
    6. 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
    7. Look for an edge big/smart money can't take advantage of (hint - liquidity)
    8. Remember, automation lets you do more of "what works" and spending less time doing that, focus on figuring out what works before automating
    9. Separate strategy from execution and automation
    10. Spend most of your time on the strategy and its validation
    11. Know your costs / feasibility of fills. Run live experiments.
    12. Make first automation bare-bones, your strategy will likely fail anyway
    13. 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
    14. Be sceptical of test results with less than 1000 trades
    15. Be sceptical of test results covering one market cycle
    16. No single strategy work for all market conditions, know your favorable conditions and have realistic expectations
    17. Good strategy is the one that works well during favorable conditions and doesn't lose too much while waiting for them
    18. Holy grail of trading is running multiple non-correlated strategies specializing on different market conditions
    19. Know your expected Max DD. Expect live Max DD be 2x of your worst backtest
    20. 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
    21. Increase your trading capital gradually as you gain confidence in your method
    22. Once you are trading live, don't obsess over $ fluctuations. It's mostly noise that will keep you distracted
    23. 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
    24. Know when to shutdown your system
    25. 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.
     
    boba15, topdog, WS_MJH and 19 others like this.
  2. Craig66

    Craig66

    What's wrong with doing 2? Esp. if current platforms don't cater to what you want?
     
    DiceAreCast and d08 like this.
  3. d08

    d08

    The cost of time is huge if you want something that is comprehensive.
     
  4. Craig66

    Craig66

    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.
     
    Last edited: May 23, 2021
  5. Snuskpelle

    Snuskpelle

    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.]
     
    Last edited: May 23, 2021
    ValeryN likes this.
  6. fan27

    fan27

    This is fantastic!!
     
    ValeryN likes this.
  7. Bad_Badness

    Bad_Badness

    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.
     
  8. 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.

     
    gkishot, PoundTheRock, Occam and 2 others like this.
  9. 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.

     
  10. Great post but I disagree with 2 and 7

    GAT
     
    #10     May 24, 2021