theory driven alpha models

or: how i learned to stop worrying and love systematic thinking

07-Jul-25

the framework that changed how i think about returns

during my equity research days, i spent countless hours building models, analyzing companies, and trying to find that edge. the fundamental analysis was solid, but something was missing. it wasn’t until i stumbled upon this framework that things clicked.

here’s the thing: most people approach alpha generation like they’re throwing darts. technical folks look at charts. fundamental folks dig through financials. quants run backtests. but rarely does anyone step back and think systematically about what kind of alpha they’re actually trying to capture.

the mental model

graph TD
    %% Return Category Layer
    Alpha[Alpha]
    Alpha --> Price
    Alpha --> Fundamental

    %% Input Layer
    Price --> Trend
    Price --> Reversion
    Price --> TechSentiment[Technical - Sentiment]

    Fundamental --> Yield
    Fundamental --> Growth
    Fundamental --> Quality

    %% Specification Layer
    Trend --> ForecastTarget[Forecast - Target]
    Reversion --> ForecastTarget
    TechSentiment --> ForecastTarget
    Yield --> ForecastTarget
    Growth --> ForecastTarget
    Quality --> ForecastTarget

    ForecastTarget --> ModelDef[Model - Definition]
    ModelDef --> CondVars[Conditioning - Variables]
    CondVars --> RunFreq[Run - Frequency]

    %% Implementation Layer
    RunFreq --> TimeHorizon[Time Horizon]
    RunFreq --> BetStructure[Bet Structure]
    RunFreq --> Instruments[Instruments]

    %% Time Horizon branches
    TimeHorizon --> HF[High Frequency]
    TimeHorizon --> ST[Short Term]
    TimeHorizon --> MT[Medium Term]
    TimeHorizon --> LT[Long Term]

    %% Bet Structure branches
    BetStructure --> Dir[Directional]
    BetStructure --> Rel[Relative]

    %% Instruments branches
    Instruments --> Liq[Liquid]
    Instruments --> Illiq[Illiquid]

    %% Styling
    classDef returnCat fill:#FFCC00,stroke:#000,stroke-width:2px
    classDef input fill:#FFE066,stroke:#000,stroke-width:1px
    classDef phenomenon fill:#FFEB99,stroke:#000,stroke-width:1px
    classDef spec fill:#FFF2CC,stroke:#000,stroke-width:1px
    classDef impl fill:#E8EEF7,stroke:#000,stroke-width:1px

    class Alpha returnCat
    class Price,Fundamental input
    class Trend,Reversion,TechSentiment,Yield,Growth,Quality phenomenon
    class ForecastTarget,ModelDef,CondVars,RunFreq spec
    class TimeHorizon,BetStructure,Instruments,HF,ST,MT,LT,Dir,Rel,Liq,Illiq impl

breaking it down

return categories: the starting point

every alpha model starts with a simple question: are you making a price-based bet or a fundamental bet?

price-based alpha assumes the market will continue doing what it’s been doing (trend), revert to some mean (reversion), or that technical indicators capture crowd psychology (technical sentiment). i’ve seen brilliant quants make fortunes on price patterns alone.

fundamental alpha is the bread and butter of traditional investing. yield (boring but reliable), growth (exciting but expensive), and quality (the sleep-well-at-night factor). during my time covering 16 o&g names, quality metrics saved me from recommending several blow-ups.

the phenomena layer: where theory meets reality

this is where you pick your poison:

  • trend: momentum works until it doesn’t. made money on energy stocks in 2022 this way.
  • reversion: everything mean-reverts eventually. key word: eventually.
  • technical sentiment: reading the tea leaves of order flow and positioning
  • yield: getting paid to wait. my ballard power position taught me patience here.
  • growth: paying up for the future. see: every tech stock ever.
  • quality: warren buffett’s playground. boring? yes. profitable? also yes.

specification: the unsexy part that matters

here’s where most people fail. they have a great idea but terrible implementation.

forecast target: what exactly are you predicting? next month’s return? relative performance? be specific.

model definition: your actual methodology. during my python automation phase, i learned that simple often beats complex.

conditioning variables: the “it depends” factors. oil prices above $80? different game. fed hiking? adjust accordingly.

run frequency: how often you update. daily models need different infrastructure than quarterly ones.

implementation: where rubber meets road

time horizon matters more than people think: - high frequency: microseconds matter. not my game. - short term: days to weeks. most retail traders live here. - medium term: months. my sweet spot during equity research days. - long term: years. where fundamental analysis shines.

bet structure: - directional: long or short. simple. - relative: long one thing, short another. market neutral dreams.

instruments: - liquid: easy in, easy out. spy options. - illiquid: higher returns, longer commitment. private equity taught me this.

why this matters

after five years in policy work, watching capital flee canada, i kept coming back to this framework. why? because it forces clarity.

when someone says “i have an alpha idea,” you can now ask: 1. price or fundamental based? 2. what phenomenon are you exploiting? 3. what’s your forecast horizon? 4. how are you implementing?

suddenly, hand-wavy ideas become concrete strategies.

the python connection

these days, i’m building tools to systematize this framework. imagine: - automated screening for reversion opportunities - ml models to identify regime changes in trend/reversion dynamics - real-time conditioning variable monitoring

the framework provides structure. code makes it scale.

final thoughts

this isn’t just about trading. it’s about thinking systematically about any prediction problem. whether you’re forecasting oil prices, analyzing policy impacts, or picking stocks, the framework holds.

the beauty is its flexibility. combine elements. a quality + reversion strategy? why not. momentum with fundamental conditioning? even better.

currently building out implementations of various combinations. if you’re working on similar problems or want to collaborate on making these concepts more accessible, reach out.

remember: alpha isn’t about being smarter. it’s about being more systematic than the next person.


currently exploring: using transformer models to identify regime changes in factor performance. because if you’re going to be unemployed, might as well learn something new.