Research

Memecoin Lab
Forward-recorded research and a live trading bot
  • Built a recorder that logs every new token on two chains, its security flags and its first 24 hours of prices, recording forward because free histories drop rugged tokens; added an on-chain listener after the aggregator feed missed about half of new pools.
  • Tested 1,728 rule settings per segment with realistic costs and execution lag, pre-registered every candidate and kill rule, caught a 'passing' candidate whose profit came from fake pool liquidity, and froze a rug-veto model (AUROC 0.78 forward) before running it on paper.
  • Ran the strategy with real money and wrote a trade-by-trade post-mortem against paper: execution matched, and the losses came from safety stops that confined the bot to rug bursts; built the Python bot and a Next.js dashboard on Railway and Vercel.

Python, SQLite, eth-account, JSON-RPC, scikit-learn, pandas, Next.js, TypeScript, Railway, Vercel

Write-up

Dangote Cement
Equity research note and DCF model
  • Wrote a buy-side research note on Dangote Cement (NGX: DANGCEM) for pension funds and asset managers: Underweight, 12-month target ₦1,007 against a ₦1,490 share price.
  • Extracted five years of figures from the company's NGX filings by script, each tagged with its source page and cross-checked against the next year's filing.
  • Built a formula-driven DCF model with a WACC × growth sensitivity, a reverse DCF (the price implies naira bond yields of about 12.6%, against 17.2% at auction) and a peer P/E comparison, checked by an independent recomputation.

Excel (openpyxl), Python, pypdf, matplotlib

Write-up

Credit Risk PD Model
Scorecard vs LightGBM, validated out of time
  • Built a WoE logistic scorecard and a monotone-constrained LightGBM challenger for probability of default on 620,783 Lending Club loans, developed on 2012Q4–2013 and tested out of time on 2014 and 2015.
  • Validated it the way a bank's model risk team would: Gini/KS with bootstrap intervals, calibration tests and observed/predicted ratios by grade, PSI/CSI, recalibration, and a findings log.
  • Turned PD into expected loss (PD × LGD × EAD) with an EL backtest, a crisis stress test calibrated four ways, and Basel (Vasicek) capital; wrote a 14-page model document in validation-report format.

Python, pandas, scikit-learn, LightGBM, statsmodels, SciPy, matplotlib, pytest

Write-upModel document (PDF)Code

Naira Yield Curve
FGN and Eurobond curves from public data
  • Built daily Nelson–Siegel curves for Nigerian government (FGN) bonds and dollar Eurobonds from FMDQ, DMO and CBN sources, with parsers for 3,000+ PDFs and spreadsheets across a decade of layouts.
  • Ran PCA on curve moves and an event study around 23 MPC decisions: bond yields now move in the week before rate decisions, where in 2010–2017 they moved in the decision week.
  • Traced the early move to the CBN's own bill and bond auctions, and tested it against published analyst expectations and MPC members' votes.

Python, PostgreSQL, pandas, SciPy, statsmodels, pdfplumber, matplotlib

Write-upPaper (PDF)