Advice for aspiring algo-traders

I probably need to disagree. Let's take a profiling architecture in python to set up a simple deep learning model and test it using financial time series. There are tons of modules where one plugs in a pandas dataframe and out comes the accuracy of the train and validation data set. Out comes the result. Job done. Not quite, I would argue. Unless the researcher has actually understood what is going on under the hood and why nothing really has been learned. The result without context is quite meaningless I would argue. I am not suggesting to reinvent what keras or tensorflow already offer, so I am with you on the issue of reusing modules. But I strongly suggest to write and create the overall architecture yourself. Because training a network is much more than just plugging data into a framework. It's thinking of what data to use, feature extraction/engineering, data cleansing and preprocessing, choice of hyper parameters, how to normalize the data, the design of the core layers, what to measure and optimize for, how to interpret results,... All that can only be understood properly by doing it oneself. With keras or scikit learn or other packages of course but nonetheless a self-defined and implemented testing framework.

Once a model has been validated in the initial profiling stage can the researcher move on to a more robust testing framework and backtest.

But in this case you can find python frameworks on github to accomplish the task. Really, the goal should be to first find something already built that satisfies your requirements. And if something does not fully satisfy your requirements, can you build an integration with it to get you over the finish line. Rolling your own solution should be a last resort. I have seen plenty of would be algo traders spend years attempting to build their own platform resulting in them never doing any algo trading.
 
I probably need to disagree. Let's take a profiling architecture in python to set up a simple deep learning model and test it using financial time series. There are tons of modules where one plugs in a pandas dataframe and out comes the accuracy of the train and validation data set. Out comes the result. Job done. Not quite, I would argue. Unless the researcher has actually understood what is going on under the hood and why nothing really has been learned. The result without context is quite meaningless I would argue. I am not suggesting to reinvent what keras or tensorflow already offer, so I am with you on the issue of reusing modules. But I strongly suggest to write and create the overall architecture yourself. Because training a network is much more than just plugging data into a framework. It's thinking of what data to use, feature extraction/engineering, data cleansing and preprocessing, choice of hyper parameters, how to normalize the data, the design of the core layers, what to measure and optimize for, how to interpret results,... All that can only be understood properly by doing it oneself. With keras or scikit learn or other packages of course but nonetheless a self-defined and implemented testing framework.

Once a model has been validated in the initial profiling stage can the researcher move on to a more robust testing framework and backtest.
I agree....you are not going to pull some ML framework off the shelf and have it spit out some profitable models without understanding on some level how it is doing what it is doing. It also depends on which rabbit hole you want to go down. The strategies I am trading are relatively simple....no ML required. I just need a quick way to spin up strategies to test ideas and I have achieved that via an integration I build to an existing platform.
 
Great post but I disagree with 2 and 7

GAT

Rob, you should publish your list. I'm sure people will appreciate it.

#2 is the most controversial it seems. I did write my own too and there was a value in it, but also a good deal of distraction. Perhaps I should combine it with "80% spent on your strategy development, 10% on experiments, 10% on automation". Ultimately, don't get into a trap of spending most time creating software vs a strategy.

#7 - understood, considering your background. For someone who is just starting out, do you feel it is a good idea to go head to head with the best guys in the industry working hyper-liquid instruments?
 
Once a model has been validated in the initial profiling stage can the researcher move on to a more robust testing framework and backtest.

It is a good point. After reading all the comments (the backtesting point was the most discussed), I can't disagree that there is value in creating your own backtesting engine, what I meant is - watch out for becoming a backtesting engine developer in the process. For guys with software dev background, this can easily become a rabbit whole and escape from more "boring" and new = uncomfortable but ultimately more valuable for trading activities.
 
Good point, can agree with that.

It is a good point. After reading all the comments (the backtesting point was the most discussed), I can't disagree that there is value in creating your own backtesting engine, what I meant is - watch out for becoming a backtesting engine developer in the process. For guys with software dev background, this can easily become a rabbit whole and escape from more "boring" and new = uncomfortable but ultimately more valuable for trading activities.
 
Good points, though I bet you spent a decent amount of time to fully understand everything about that external framework.

I agree....you are not going to pull some ML framework off the shelf and have it spit out some profitable models without understanding on some level how it is doing what it is doing. It also depends on which rabbit hole you want to go down. The strategies I am trading are relatively simple....no ML required. I just need a quick way to spin up strategies to test ideas and I have achieved that via an integration I build to an existing platform.
 
  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.
I see no mention about discretionary content.
Do you allow for that yourself or do you prefer 100% mechanical?
Running 100% mechanical will likely give poorer results imo.
 
I see no mention about discretionary content.
Do you allow for that yourself or do you prefer 100% mechanical?
Running 100% mechanical will likely give poorer results imo.

Agree with you on the second point.

I do run 100% mechanical and this is a lifestyle choice. Couple of hours after market close I receive automated report which I look at, habitually, at some point before I go to bed. It contains slippage + model vs live comparison and no $ or PL figures to keep it emotionless. Can go on vacation and have everything running, keep building my tech business during a day, rock climb and keep looking for a wife.

End of the week I look at PL and trailing 3m models / live performance. That is where I will use my discretion - turning strategy off/on and adjusting % allocations.

I would love to see an experienced and profitable discretionary trader doing a post similar to mine.

Val
 
Agree with you on the second point.

I do run 100% mechanical and this is a lifestyle choice. Couple of hours after market close I receive automated report which I look at, habitually, at some point before I go to bed. It contains slippage + model vs live comparison and no $ or PL figures to keep it emotionless. Can go on vacation and have everything running, keep building my tech business during a day, rock climb and keep looking for a wife.

End of the week I look at PL and trailing 3m models / live performance. That is where I will use my discretion - turning strategy off/on and adjusting % allocations.

I would love to see an experienced and profitable discretionary trader doing a post similar to mine.

Val
I think if one were trading the Indexes or fx, the importance of discretionary content would be less than for individual stocks.
 
Back
Top