Look Ma, a Workflow

L

A few months ago someone on reddit asked about my workflow for strategy research. I thought about it and realized how far I’d come on this exciting and humbling journey. From indicator soup to some semblance of evidence based strategy validation.

I’m not quite using this exact process any more, but thought it worth documenting for posterity. Here’s my reply, paraphrased and formatted. Notice my caveat: “it depends on the strategy”.. there are so many ways to skin a cat, and many different sizes / breeds of cats. 

Please note: no cats are ever harmed during the research process.


[reddit]: 
What’s your process to obtain a profitable strategy?

[me]: 
Well, It depends on the strategy, the asset, the goal, etc.
All my workflows generally use some variation of the following

  1. The Spark
    An idea to explore. Some north star to drive the research.
    eg: “Prices tend to rally after long periods of compression, can this be exploited?”
  2. Data
    Identify what data I’ll need. Price, volume, order book? What time frame?
    Will I need alternate data? Where can I find it?
    how many years of data will i need?
  3. Quick Prototype
    Prototype and backtest the strategy to see if it’s worth iterating on.
    What’s the fastest way to backtest this? Quantconnect? Tradingview? Algowizard?
  4. Iterate
    Lock in parameters., and Iron out inefficiencies,
    Could this perform better if I avoid earning calls (eg: for options swing strategies), should I turn off weekend trading (eg for intraday Crypto strategies). This is where overfitting happens. so I try to lock in some parameters. Like decide on something that i will NEVER adjust. like period length of the Bollinger bands. Have to remind my self that i dont want it to look perfect. Just better.
  5. Metrics
    While iterating, I’m assessing different metrics. depending on the strategy i might evaluate
    1. CAR/Drawdown Ratio
    2. Sortino ratio (not sharpe. it penalizes ‘good’ volatility)
    3. Distribution of returns (eg using tharp expectancy)
    4. MAE and MFE (do i have deep unrealized drawdowns? do i leave money on the table?)
  6. Is it Robust?
    Once I feel I’ve made it better I do robustness testing
    1. Add slippage and fees
    2. Multi market testing (on other similar assets –it doesnt need to be amazing, it just needs to not go bankrupt)
    3. Monte Carlo simulations ( randomize sequence of trades )
    4. Walk forward testing / analysis
    5. Parameter sensitivity testing
  7. Forward Test
    If it does well at each of these phases, I may forward test with a paper account for about 50-100 trades.
  8. Pull the trigger
    Then i go live. Note that this really depends on the strategy. If I’m trading a long term trend follower that trades once every 3 months, then i may just go live right away.

About the author

quantish
By quantish

quantish

Automate everything.