Work Samples

systematic futures · discretionary equity · an AI-assisted research platform

Everything on this page is my own live work: a systematic futures book, two discretionary equity books, and the research platform that runs the process. The charts respond to hover, and the Research Desk tab is a working simulation of the platform's equity desk. Figures are the books' recorded performance, not an audited track record.

How to read this page

Two ways into the same market

The systematic book trades futures on rules that are tested, activated and retired on out-of-sample performance. The discretionary books hold equities researched name by name. The platform on the Research Desk tab is what compresses the discretionary workload.

Honesty markers

Lines in this color flag what a careful reader should discount: aggregation effects, in-sample portions, unaudited figures. They are part of the work, not an apology for it.

Example: the book Sharpe of 4.95 is a property of aggregating 205 low-correlation strategies, not a single-strategy claim.

The systematic futures book

Strategies are meant to stay in the book for years. Positions are not: turnover is high by design. This tab walks the whole construction: what the book is, how one strategy is built and stress-tested, and the rules that decide what trades live.

Strategies
205
tested universe
Markets
27
futures instruments
Asset classes
8
equity to softs
History
2007–26
18.8 years of data
Live now
31
of 39 ever activated
Design intent

What is permanent is the strategy, not the position

Not a buy and hold book. What lasts is the strategy: validated over twenty years, expected to stay across regimes. Markets are added for low correlation, so one market falling apart does not take the book with it. The payoff is a steadier curve that still earns when equities are in a long drawdown.

Incubation tests whether the edge was ever real

Thousands of configurations can be tested in an afternoon, so most of what looks profitable is the residue of the search. Six months of live data separates the two, and costs almost nothing on a strategy meant to run for years. If six months kills it, it was never there.

Two different ways into the same book

Macro systematic

Draws on the data point universe below: positioning, spreads, seasonality, rates, events, breadth, volatility regime. Macro never enters a trade; it decides whether the regime allows one. The final gate is always price action: a volatility multiple, a volume or time condition, a weighted average price. Regime false, no trade.

Price action systematic

Draws on price and volume alone: trend, range, volatility, breakout and mean reversion. No regime gate, and that is the point: it catches behaviour that repeats with or without a macro story, and reaches markets where no macro data exists. The performance pages on this tab come from this library, the older of the two.

Ratio strategies sit in both. The signal comes from the relationship between two instruments, not either price: the gold to silver ratio, not the gold future. Execution is decided separately, one leg or both legs opposed as a spread, and which one is tested rather than assumed.
The data point universe · ten families of input

Every macro systematic strategy is assembled from this map. Price is one family of ten, not the whole picture. Click a family for what it holds.

Data source and test window

All market data is IQFeed / DTN, one vendor feed. Every strategy is backtested over twenty years, which forces it to survive 2008, 2020 and 2022 rather than one favourable regime. The full indicator map runs 75 indicators across 8 families, each scored minus 2 to plus 2 and combined into a composite running minus 6 to plus 6.

What this map is not

The macro universe only. The book also runs price action strategies on price and volume alone, using none of the above. The construction method is the same for both; the difference is the input set.

The book, in numbers

Cumulative net profit, all 205 strategies combined

USD millions · monthly · hover for values

The curve aggregates every tested strategy and is mostly in sample. It shows the shape of the book, not a promise. The governed live book is the 31-strategy subset described under Governance below.

Net profit by year

USD millions · 19 of 20 years positive · hover for values

Monte Carlo on the book's daily returns

1,000 reshuffled paths of the same 6,872 daily P&L values · computed for this page · hover for the bands
Ending NP, 5th pct
$257M
unlucky ordering
Ending NP, median
$274M
actual: $274.5M
Max DD, median path
-$1.15M
across simulations
Max DD, 5th pct
-$1.61M
actual: -$1.34M

The question this answers: did the curve need one lucky ordering of its returns? The realised path sits in the body of the distribution, and the realised drawdown of $1.34M sits between the median simulated drawdown and the unlucky tail. Sizing decisions use the unfavourable end of this distribution, not the backtest drawdown: that ordering was always possible.

Distribution of all 20,910 pairwise correlations

monthly returns, strategy against strategy, the dashboard's own method · hover the bars
Mean pairwise r
+0.021
across 20,910 pairs
Mean |r|
0.066
low co-movement
Pairs above 0.7
13
of 20,910
Pairs above 0.3
127
0.6% of all pairs

The mass sits on zero. This is what the whole construction leans on: almost nothing moves together, so the combined book is smoother than any of its parts. It is also why the aggregate Sharpe is high, and why that number should be read as a property of the aggregation.

How one strategy is built

The worked example is Combo6E60: Euro FX futures, 60-minute bars. Single strategies were the original lens. When idea generation slowed, many entries, filters and exits were combined inside one master strategy, each signal individually switchable, and optimisation ran across the combinations instead of a person hand-picking one pairing at a time. The same shell deploys per instrument.

The obvious objection first: searching thousands of combinations makes overfitting more likely, not less. The search is only defensible because of what happens to its output next, which is the four steps below and the governance section after them.

From idea to a configured backtest

Idea becomes logic, signals are switched on, the test is configured. Then, and only then, a result. Instrument 6E, 60-minute bars, 1 January 2007 to 30 August 2026, the instrument's own session template, IBKR commission and one tick of slippage on every fill.

Why the configuration is shown

Impressive backtests are rarely wrong in the arithmetic. They are wrong in the setup: illiquid hours, a start date after the drawdown, a series that repaints. Costs are inside every number that follows: commission alone is $9,711 against $158,039 of net profit.

Parameter tree of the master strategy
The master strategy's parameter tree: signal families 21-23 reversion trend, 31-33 momentum trend, 41-43 reversion channel, 51-56 exits and stops. A system is any combination of these that survives testing.
Net profit
$158,039
after commission, slippage
Max drawdown
-$21,295
worst peak to trough
NP / max DD
7.42x
whole sample
Trades
2,207
1,098 long, 1,109 short
Win rate
40.96%
not the edge
Profit factor
1.19
gross win / gross loss
Combo6E60 equity curve
Look at 2012 to 2014 and 2021 onward: long periods going nowhere, held through.
Combo6E60 yearly profile
Six of twenty calendar years negative, left in. The worst takes back more than most winners add.

The number that matters here is not the win rate. Forty-one percent of trades make money; it works because the average winner is 1.72 times the average loser. Run by hand, this strategy gets abandoned in 2013.

Monte Carlo of Combo6E60 trades
One hundred simulated orderings of the same 2,207 trades. Each line is one possible history of the same strategy.

How to read it

The backtest earned $158,039. Simulated paths run from about minus $40,000 to $280,000, most between $60,000 and $160,000. The realised result sits in the body of the distribution, not at the top edge.

Why the outliers are stripped out

The run is repeated with the best and worst 3 percent of trades removed, then 4 percent. Does it still work without the trades that made it look good? A result that needs its outliers depended on a handful of events.

What it changes in practice: size against the unfavourable end of this distribution, not the backtest drawdown. That ordering was always possible.

Maximum adverse excursion
Maximum adverse excursion. How far each trade went against the position before closing. The clean lower edge on the losers is the stop working: losses bounded, thin tail.
Maximum favourable excursion
Maximum favourable excursion. How far each trade went in favour before closing. The gap to the realised result is profit the exit gave back: the fastest way to see whether the exit, not the entry, is the problem.
Total efficiency
Total efficiency. Share of each trade's available move actually captured, entry and exit together. The flat mean line across nineteen years says this is stable across regimes.

Why this step exists: a strategy can be profitable and badly built. Deep adverse excursion means the size is wrong for the stop. Giving back the favourable excursion means the exit is wrong. This is the last check before incubation.

Governance: what trades live, and why

The over-optimisation detector: Performance Score

PS asks one question: is live performance sitting inside the statistical envelope the backtest predicted? Inside means the backtest described something real. Outside means it described the search.

ZScore = (actual OOS net profit - expected OOS net profit) / (in-sample monthly std x sqrt(months OOS)) PS = ZScore x sqrt(months OOS / 6)

Lose a month inside the band and the score is fine. Fall outside and it is not. The time scaling means no score carries full weight before six months, so nothing moves on a short run of luck.

Activation and deactivation

One good month cannot promote a strategy and one bad month cannot remove it. Three consecutive months at or above the floor activate; three below deactivate. No overrides.

PS floor
0.0
min 6 months OOS
Pass today
28
of the universe
Changes
47
39 adds, 8 removes

Every activation and removal since the first out-of-sample month

47 real events, 2024-01 to 2026-03 · each marker is one strategy on the date the rule fired · hover for the name and score

This is the rule as traded, walked forward with no look-ahead: each month end saw only the data available then, and strategies later removed stay in the record for the whole time they were held. Running today's book backwards always looks good, because the failures are already gone; this is the honest version.

Three guards, built to disprove the edge
D1 · WALK-FORWARD SWEEP

Optimise the rule, then distrust it

The filter itself is swept across PS floor, consecutive months and minimum months out of sample: 72 combinations, scored on net profit over max drawdown and penalised for turnover. Tracked month over month, the best floor has stayed put across the saved sweeps. A stable optimum is the point; a floor that wandered every month would say the optimum is noise.

D3 · THRESHOLD STABILITY

Verdict: MODERATE, not PLATEAU

The rule is re-run at floor minus 0.5, at the floor, and at floor plus 0.5. On this book the verdict is MODERATE: the active count and ratio move across the band. The direction of travel is the useful part: tightening from minus 0.5 to zero cuts the book from 51 strategies to 31 and lifts the ratio from 3.48 to 4.48. The floor selects; it does not trim at random.

D5 · SELECTION BIAS

None clear the bar, and that is stated

Because roughly 188 strategies were screened, luck alone can produce a z of 3.24, and family-wise significance needs 3.46. None of the filtered strategies clears that bar, and that is stated rather than buried: over a two-year live window almost nothing can, because z grows with time. The meaningful number today is the selected group's median z of +0.78: above zero means the picks are running at or above what their backtests predicted.

Allocation: choosing a sizing rule, not sizing line by line

Sizing is recomputed from recorded daily performance, so a whole rule can be tested without re-running a backtest. Two engines: one return-led (re-scale each strategy's P&L to different contract counts and maximise Sortino: on a real run, 86 targets, portfolio Sortino 6.63 to 8.05; known weakness, it concentrates into recent winners, which the three-month rule slows down) and one risk-led (EWMA 35-day dollar volatility, equal risk budgets, capped 0.5x to 2x; it cannot chase a winner, and will fund a strategy the return-led engine would starve).

Three risk-budget modes: equal risk per instrument (pulls the largest single-strategy risk share from 3.35% to about 1%), equal risk per cluster (the most opinionated: 142 lines cut against 69 raised, because equities is where most strategies live), and flat per strategy, the benchmark the other two must beat. All three re-run quarterly on trailing data only. Stale or broken curves are frozen at current size and flagged, never silently resized.

The AI layer on the systematic book: three tools, propose only

Strategy review. Reads every strategy's recorded performance and produces a label, an action and a one-line reason: Performer, On Watch, Broken, Broken-to-analyse. Labels feed a decision, they are not the decision; nothing is switched off here, the three-month rule does that, on PS rather than an opinion.

Allocation suggestions. Proposes a sizing rule for the whole book under each risk mode, walked forward quarterly to test whether it would actually have helped.

Operations agent. The book is automated, so the real operational risk is a platform down, half connected, or quietly skipping trades. An agent watches the feed, broker session, chart state and strategy enablement, repairs a known restart sequence, and messages when it cannot. Tooling that keeps an automated book running; it makes no investment decision.

The measurement layer

A sample of what is measured over the systematic book, recomputed from the book's own daily record for this page. The full layer runs in the trading dashboard.

Sharpe
4.95
aggregate book
Sortino
9.15
aggregate book
NP / max DD
204x
$274.5M / $1.34M
Positive months
96.5%
mostly in sample
Avg exposure
$60.7M
max $98.3M

Sharpe, drawdown ratio and the positive-month rate are consequences of aggregating 205 low-correlation strategies over a mostly in-sample window. They describe the construction, not a live track record.

Monthly net profit, every month since inception

USD millions · hover any cell

Distribution of monthly returns

227 months · USD millions · hover the bars

Rolling 12-month net profit

USD millions · hover for values

Drawdown from peak, daily resolution

USD millions below the running high-water mark · the worst is -$1.34M · hover for values

The drawdown chart is the page that matters most in the whole layer: depth and duration of every losing stretch, at daily resolution. Everything above it says how the book earns; this says what holding it felt like on the way.

Exposure by asset class

average notional (bar) and maximum (tick) · USD millions · hover for values
Efficient frontier of the sleeves

Return vs volatility

asset-class sleeves, annualised · hover the points

What it says

The book as weighted sits at 20.4% return on 7.9% volatility, a ratio of 2.58. The best mean-variance mix of the same sleeves reaches 3.82 at lower volatility, found by searching 101 candidate mixes with a 40% cap per sleeve. The gap is deliberate: sleeve weights also carry capacity and margin constraints the optimiser does not see, but the frontier keeps the cost of those constraints visible instead of letting them hide.

Two discretionary books, two worked names

Live positions, shown as weights. One name in each book is worked end to end in the sample workbooks: model, relative valuation, and the research questions that cap position size until they are answered.

The research process, as the workbooks run it

Both sample workbooks follow the same five steps. Nothing below is a template with blank cells: every number is the workbook's own output on the two worked names.

STEP 1

The lens

The name enters through a strategy lens with its own screen and rules: Quality Compounders for SPGI, an income lens built on the dividend policy for ADNOC Distribution. The lens decides what evidence the model must respect.

STEP 2

The model, on filed inputs

A driver-based DCF from the filings, with the terminal-value share of the answer stated on the sheet, and a sensitivity grid over discount rate and terminal growth instead of a point estimate. Banks and dividend policies get a DDM at cost of equity, never a WACC.

STEP 3

Relative valuation and comps

The name's multiples against its own history and against its closest comparable, charted below the way the workbook charts it: SPGI against Moody's, built from twelve years of SEC filings.

STEP 4

Pre-mortem research questions

Ten questions per name, answered in writing before the position goes on, each marked resolved or open. Samples below.

STEP 5

The book, with a rule

Anything still open caps the position at starter size. On both tabs that is not a slogan: four open questions per name is exactly why both positions sit at starter weight today.

What the models say, from the workbooks' own cells
SPGI · DCF

Fair value $442.71

WACC 9.14%, terminal growth 3.0%. Against the price at build, upside is +0.6%: roughly fairly priced, which is why the case rests on the open questions, not the model.

Stated on the sheet: terminal value is 76% of enterprise value. Most of this DCF sits in the terminal assumption, and the sheet says so.

ADNOCDIST · DCF

Value AED 3.99

WACC 8.80%, terminal growth 2.5%, EBITDA fading from 7% growth to a mature retail rate. Upside +4.8% at build. Terminal value is 75% of enterprise value, flagged the same way.

ADNOCDIST · DDM

Fair value AED 3.56

Cost of equity 9.48%, dividend growth 5% then 3% terminal, payout 95%. Downside -6.4%: the dividend model is stricter than the DCF, because a 95% payout leaves growth no room. The two answers bracket the name, and both are kept.

Relative valuation, the workbook's own chart: SPGI against MCO

P/OCF, P/FCF and EV/EBITDA, TTM, 2014 to 2026, built from SEC filings · SPGI solid, MCO dashed · hover for values
Pre-mortem research questions, sampled from the workbooks
SPGI · 3 of 10

RESOLVED What does Ratings revenue do in a genuine issuance freeze?
2008 and 2022 are the two clean tests. Issuance fell hard in both and Ratings revenue fell with it, but surveillance and subscription held, so the fall was a fraction of the issuance fall. Underwrite the worse of those two years, not the average of a cycle.

OPEN Which Market Intelligence products face AI substitution?
Not disclosed at product level. Working split: data delivery and screening are exposed, proprietary datasets and embedded workflow are defended. Until that share is sized, this caps the position at starter weight.

RESOLVED What is the correlation of this name to the rest of the book?
The book already holds JPM, GS, C, WFC and MA. Ratings revenue tracks issuance, the same cycle that drives investment banking. An argument for a smaller size, not for skipping the name.

ADNOCDIST · 3 of 10

RESOLVED Is the USD 700m dividend floor a board policy?
A board policy, not a covenant, so it can be revised. It has already been extended once, which cuts both ways. Watch declared DPS against the floor, and leverage.

OPEN What replaces the policy after 2030?
It matters more than anything else on the tab: the DDM's terminal value assumes the policy effectively continues. If it lapses to a plain payout ratio, the terminal value falls. Model the terminal on a sustainable payout instead and see what price that supports.

RESOLVED What would make me sell at a loss rather than add?
The dividend policy revised down, leverage past 1.5x to fund the payout, or the margin formula changed against the retailer. Average only on a de-rating with the policy intact.

WORKED NAME · US

S&P Global (SPGI)

DCF on filed inputs, relative valuation against Moody's with a 12-year multiples history built from SEC filings, and ten pre-mortem research questions. Four are still open, and on the tab that is exactly what caps the position at starter size.

WORKED NAME · MENA

ADNOC Distribution

DCF and a dividend model built around the board's USD 700m dividend floor, with the same research-question discipline. The open question that matters most: what replaces the payout policy after 2030, because the terminal value assumes it effectively continues.

Research Desk · a working simulation

This is a light, illustrative rebuild of the equity desk from my research platform, using its real data. An LLM analyst files ideas, drafts notes, and runs models on filed inputs. A person progresses, decides and sizes. The platform runs on free and public data: Yahoo Finance, SEC filings, FRED, news. No terminal feed.

Cards move left to right: Idea, Research, Model, IC, Position. Click a card in the Idea column to progress or reject it, the way the desk does.

In the live desk the Idea column holds 1,784 agent-filed candidates from 29 idea-generation lenses across 9 strategy playbooks. Rejected ideas are kept for the record.

Every note the desk writes sits on the shelf. Click one to open it. This sample carries the complete PepsiCo deep dive in the desk's newest format, and the Moody's note as an excerpt of the earlier format; the rest ship as PDFs with the full pack.

MCO trading multiples, 2014 to 2026

TTM, built from SEC filings and month-end prices · hover for values
The model sheet

Driver-based DCF on filed inputs. Implied $167.20 against $508.23: the machine says DO NOT ALLOCATE while the analyst note argues the multiple case. That disagreement is desk output, not an error; the committee sees both. Hover the sensitivity grid: implied price by WACC and terminal growth, base case marked.

The digest is a summary of the full note, presented to the reporting manager. The full note stays one click away.

MCO
EquityQuality CompoundersBusiness ServicesUnited States
The business did not change; the price caught up to it. Earnings growth outran the multiple, not a selloff.
Desk summary
    Research Note (full)
    Opens the complete sixteen-section note. In this sample it lives on the Research Notes tab, and as a PDF in the full pack.
    Valuation Analysis (full)
    The multiples table, the read, and the chart on the Valuation tab. Ships as a PDF in the full pack.

    One card per covered name, per print. Estimate against actual, the sourced report, and the desk's own read.

    NVDANVIDIA CorporationHELDprinted 2026-08-26
    EPS est 2.09 · actual 2.22 · surprise +6.2%
    8-K (2026-08-26)Earnings callTranscriptIR press release
    Desk summary
    Printed vs expected
    Q2 FY27 EPS 2.22 vs est 2.09, surprise +6.2%, revenue $96B, a fourth straight quarter of accelerating growth.
    Guidance
    Raised. Management guided FY2028 revenue growth of roughly 70%, calling it a supply-constrained outlook.
    The one thing that changed
    First explicit FY2028 growth guide, and it is capacity-gated, not demand-gated.
    Read-through for the position
    Beat-and-raise strengthens the AI-buildout thesis under the position. Watch capacity and supply commentary next print, since growth is now bottlenecked by output, not orders.

    For a held name with a filed model, the print is scored against that model's year-one projections and the review files into the name's research note.

    Where I can add value

    Beyond the work shown on the other tabs, four concrete things I would bring to an investment team. The third one is a named strategy, presented in full below.

    01

    AI agents on the team's own process

    The Research Desk tab shows what this looks like on my own book: agents that assemble notes, run screens, keep earnings coverage current and digest reports for the decision maker. I would build the same layer around the team's existing process, one workflow at a time, with a person deciding at every step. The gain is not headcount, it is coverage: more names watched properly with the same people.

    02

    A systematic sleeve under incubation

    Stand the futures book up small, in parallel, under the activation discipline shown on the Systematic tab: paper or minimal size, monthly out-of-sample scoring, and promotion only for what keeps earning its place. New strategies enter through the same gate. The team gets a diversifying return stream whose governance is visible from day one, with no leap of faith required.

    03

    The Seagull: a defined-risk index overlay

    A named options structure for buying equity-index dips with the downside written in advance: sell a put spread into the dip, when volatility is rich, and use the credit to finance the upside. Presented in full below, with the payoff, the entry discipline and two related structures from the same family.

    04

    Room for the strategic layer

    Most of what fills an investment team's week is routine: monitoring, screening, first-draft research, reporting. That is exactly the work the tooling on this page compresses, and the work I am happy to own. The point is to hand senior time back to allocation, clients and strategy, the layer where experience actually compounds.

    The Seagull

    For the moment a mandate has met its year and has room for a measured risk sleeve. The objective: participate in the recovery after a large index dip, with the maximum loss written down before the first order, and without paying the inflated option premium a dip produces.

    Why a dip is the wrong time to buy options naively

    A big dip is a volatility spike: implied volatility rises, put skew steepens, and the front of the curve inverts. Long premium bought into that pays the top price, then loses on the recovery, because index volatility falls as the market rises. That structural drag is what the structure is built around: it sells the expensive side and buys the cheaper one.

    The three legs

    Sell a put a few percent below the dip level, where the skew is richest. Buy a further put below it, which writes the floor. The net credit finances an out-of-the-money call, or call spread, for the recovery. Sold rich put volatility funds bought cheaper call volatility, so the package is close to volatility-neutral and can be built for zero net premium.

    The structure on one axis

    index level as % of entry · illustrative strikes · hover each leg

    The Seagull at expiry

    P&L as % of notional · sell 95 put / buy 88 put / buy 104 call / sell 115 call, net premium zero · drag the slider or hover the curve
    Index at expiry

    Entry discipline, before the first trade
    TRANCHES

    Pre-committed, never averaged

    Entries only at defined drawdown levels, sized in advance: for example a third of the sleeve at minus 5%, a third at minus 10%, the last at minus 15%. Discretionary averaging into a falling index is where the damage happens; the schedule removes the decision from the moment.

    VOL GATE

    Sell only when volatility is rich

    The short put spread is only written when implied volatility ranks high against its own year. In quiet markets the cycle is skipped: without rich skew there is no credit worth selling, and the structure waits.

    CIRCUIT BREAKER

    A written loss cap on the short leg

    A cumulative loss limit on the put-spread cycles, set at entry. Hit it and no new spreads are written; only the defined-risk call position remains. The overlay can end early; it cannot compound.

    Instruments

    European-style, cash-settled index options only. No early assignment exists, losses settle in cash at a size known on day one, and rolling a strike is a clean two-leg trade with no share deliveries behind it. Position size is set so the put-spread width, the maximum loss, fits the sleeve's written risk budget.

    Two related structures, same objective, picked by mandate
    StructureWhat it isMaximum lossVolatility exposureWhen it fits
    Deep in-the-money calls
    stock replacement
    Buy 75-85 delta calls, 6 to 12 months out, instead of the index itself. Extrinsic value is a small slice of notional, so the time and volatility bleed is minimal. the premium paidlow: little extrinsic to lose the simplest expression: capped loss, near one-for-one upside, no short leg to govern
    The Seagull Short put spread finances a long call or call spread. The dip's own rich skew pays for the upside. put-spread widthroughly neutral: short rich puts, long cheaper calls zero-premium participation with a written floor; the presented default
    Diagonal risk reversal Sell a short-dated put, where dip volatility is most inflated and decays fastest, to fund a longer-dated call. not fully definedshort front volatility, long back mandates comfortable being put the index at the strike, which is the stated intention of buying the dip anyway

    All strikes and premiums on this page are illustrative, not quotes. Levels are set from live volatility and skew at entry, and the whole overlay is sized inside a written risk budget agreed before the first trade. Nothing here is investment advice.