A monorepo of small, focused personal-finance tools built from broker/market data —
Indian tax filing and beyond. Each tool is an isolated Go module under its own directory,
tied together by a root go.work workspace.
The badge and module paths assume the repo slug
github.com/akagr/finance-tools; adjust if your remote differs (also inschedule-fa/go.modandgo.work).
| Tool | Directory | Status | What it does |
|---|---|---|---|
| schedule-fa | schedule-fa/ |
complete (M0–M7) | Generates a ready-to-use Schedule FA (Foreign Assets) report for the Indian ITR from Interactive Brokers (IBKR) holdings. |
| correlation | correlation/ |
in progress | Computes return correlations across assets (e.g. VWRA vs Nifty 50) to assess how diversified a portfolio really is. |
| backtest | backtest/ |
complete | Offline backtester for rule-based strategies on NSE daily data (SMA/EMA crossover, momentum, RSI, Donchian breakout vs buy-and-hold, realistic costs), with walk-forward, parameter sweeps, Monte-Carlo and regime robustness tests. Research only — not advice. |
| papertrade | papertrade/ |
complete | Runs a strategy forward on live data with simulated fills (persistent paper account, equity curve, performance vs benchmark) to validate it before risking capital. No real orders — not advice. |
finance-tools/
go.work # ties all tool modules together
schedule-fa/ # each tool: its own go.mod, cmd/, internal/, docs/, data/
… # future tools as sibling directories
The backtest tool is Phase 1 of a deliberately staged path from idea to (maybe) live capital — money is the last step, not the first:
- Backtesting (done) — measure a rule's edge on history vs a benchmark; compare strategies, rank by risk-adjusted metrics, and size positions by volatility.
- Robustness & validation (done) — walk-forward folds, parameter sweeps, walk-forward optimisation (re-fit parameters out-of-sample), Monte-Carlo bootstrap and regime analysis all stress-test an edge from different angles.
- Paper trading (built) — the
papertrade/module runs a strategy forward on live data with simulated fills, a persistent account, a daily equity curve and performance-vs-benchmark reporting, to validate it over weeks at zero capital. - Live, bounded, tiny — only if an edge survives, as an approved rule-based bot with hard risk limits and SEBI algo registration.
Most ideas should die in steps 1–2 — cheaply, on a laptop. See
backtest/README.md for the detailed roadmap.
Requires Go (not currently installed on this machine — brew install go).
go build ./... # from repo root, builds every module in the workspaceDisclaimer: Nothing here is tax advice. Output is a working draft to be verified by the taxpayer or a qualified professional before filing.
MIT © Akash Agrawal