Factor decomposition · is this real alpha or hidden beta?
Daily strategy returns regressed against four standard factors: Nikkei 225, USD/JPY, VIX, US 10Y yield. If the strategy is "long Japan + long vol in disguise," this regression will reveal it. If the residual alpha (intercept) is large and the factor betas are small/insignificant, the strategy has genuine alpha — or at least alpha that's orthogonal to these four factors.
| Factor | Coefficient | OLS p | HAC p | Boot p | 95% bootstrap CI | Significant? |
|---|---|---|---|---|---|---|
| Alpha (intercept) | +0.0001 | 0.431 | 0.402 | 0.352 | [-0.0001, +0.0003] | No |
| nikkei | -0.0029 | 0.679 | 0.512 | 0.498 | [-0.0127, +0.0074] | No |
| usdjpy | +0.0055 | 0.748 | 0.426 | 0.444 | [-0.0072, +0.0211] | No |
| vix | +0.0000 | 0.866 | 0.797 | 0.898 | [-0.0001, +0.0001] | No |
| us10y | +0.0004 | 0.823 | 0.774 | 0.802 | [-0.0022, +0.0035] | No |
Walk-forward validation · out-of-sample stability
Split the historical panel 70/30 by date. Train on the first 70%, test on the last 30%. If the signal works on train but breaks on test, it's overfit.
| Split | Trades (hedged) | Win rate | Avg net bp | Paper CAGR | Sharpe | Max DD | Pure-bond 60d hit |
|---|---|---|---|---|---|---|---|
| Train | 22 | 41% | +40 | +2.9% | 0.69 | -1.87% | 51% (233) |
| Test | 21 | 57% | +571 | +55.7% | 1.99 | -0.36% | 94% (62) |
Ensemble · cheap-signal + vol-regime filter
Only take BUY when both (a) cheap% ≥ 5 AND (b) Nikkei 30d vol percentile ≥ 33% (mid/high regime). Filters out the low-vol environment where the signal doesn't work.
| Strategy | Trades | Win rate | Avg net bp | Median net bp | Total P&L (¥) |
|---|---|---|---|---|---|
| Unfiltered baseline | 77 | 52% | +378 | +5 | 291,164,497 |
| Mid/High-vol only | 56 | 54% | +540 | +21 | 302,413,834 |
Vol regime sensitivity · when does this work?
Each hedged trade tagged by the Nikkei 225 30-day realized vol percentile at entry. Low / mid / high tertiles.
| Vol regime at entry | Trades | Win rate | Avg net bp | Median net bp | Total P&L (¥) |
|---|---|---|---|---|---|
| High vol | 46 | 54% | +543 | +86 | 249,672,407 |
| Low vol | 6 | 50% | -88 | +14 | -5,297,210 |
| Mid vol | 10 | 50% | +527 | +3 | 52,741,427 |
Concentration metrics · how broad is the edge?
QuantLib sanity check · is our pricer correct?
Five plain-vanilla bonds priced both with our Tsiveriotis-Fernandes binomial tree (pricer.py) and with QuantLib's BinomialConvertibleEngine. Differences should be within ±2% for clean comparable bonds.
| Issuer | Maturity | σ | Spread (bp) | Our price | QuantLib price | Diff | Diff % |
|---|---|---|---|---|---|---|---|
| Nxera Pharma | 2028-12-14 | 65% | 429 | 107.51 | 106.58 | +0.94 | +0.88% |
| Nippon Steel | 2029-02-14 | 30% | 429 | 93.56 | 93.23 | +0.33 | +0.36% |
| Kansai Paint | 2029-03-08 | 27% | 429 | 94.67 | 94.34 | +0.33 | +0.35% |
| Infroneer | 2029-03-30 | 39% | 429 | 137.30 | 136.70 | +0.60 | +0.44% |
| Daiwa House | 2029-03-30 | 20% | 429 | 92.90 | 92.63 | +0.27 | +0.29% |
Backtest · does the signal actually work?
Walks the pricer forward day-by-day on real historical CB + equity data, then asks: when the model said a bond was cheap, how did the bond move next?
Signal performance — bonds with 5% ≤ cheap% ≤ 25% (anomalies filtered)
Pure bond return (no delta hedge). Hit rate = % of signals with positive forward return. The 25% cap excludes stale-conv-price bonds whose dealer mids never move.
| Horizon (d) | N signals | Avg fwd ret % | Median fwd ret % | Hit rate % | Avg cheap decay (pp) |
|---|---|---|---|---|---|
| 5 | 943 | +0.47 | +0.00 | 42.3 | -0.18 |
| 20 | 739 | +1.90 | +0.45 | 53.6 | -0.34 |
| 60 | 459 | +7.12 | +6.00 | 71.0 | -0.81 |
P&L attribution · where the money came from
Hedged trades grouped by issuer. Contribution % = that issuer's share of total net P&L.
| Issuer | Trades | Win rate | Avg entry cheap% | Avg days held | Total P&L (¥) | Avg P&L (¥) | Contribution |
|---|---|---|---|---|---|---|---|
| Daifuku | 9 | 67% | +6.9% | 33 | 91,865,149 | 10,207,239 | +31.6% |
| Nikkon Holdings | 2 | 100% | +6.6% | 15 | 57,754,019 | 28,877,010 | +19.8% |
| Rohm | 2 | 100% | +5.4% | 50 | 48,915,193 | 24,457,596 | +16.8% |
| OSG Corp | 2 | 50% | +6.7% | 26 | 45,242,028 | 22,621,014 | +15.5% |
| Obara Group | 5 | 100% | +7.2% | 46 | 29,776,725 | 5,955,345 | +10.2% |
| Taiyo Yuden | 3 | 33% | +5.9% | 58 | 21,427,383 | 7,142,461 | +7.4% |
| Toho Holdings | 2 | 50% | +6.2% | 50 | 7,502,253 | 3,751,126 | +2.6% |
| Nagoya Railroad | 2 | 100% | +5.1% | 33 | 5,779,141 | 2,889,570 | +2.0% |
| TORIDOLL Hldg | 3 | 67% | +6.7% | 42 | 4,344,107 | 1,448,036 | +1.5% |
| Park24 | 1 | 100% | +6.8% | 55 | 4,068,429 | 4,068,429 | +1.4% |
| Kobe Steel | 4 | 75% | +7.1% | 31 | 3,685,549 | 921,387 | +1.3% |
| Hosiden | 2 | 50% | +5.5% | 45 | 3,113,011 | 1,556,505 | +1.1% |
| Ferrotec | 3 | 67% | +5.5% | 47 | 1,806,292 | 602,097 | +0.6% |
| Mercari | 4 | 75% | +10.1% | 52 | 1,078,613 | 269,653 | +0.4% |
| Asante | 2 | 0% | +8.2% | 53 | -65,943 | -32,972 | -0.0% |
| Hokuto Corp | 2 | 0% | +5.3% | 42 | -243,183 | -121,591 | -0.1% |
| SRS Holdings | 4 | 50% | +16.0% | 60 | -292,020 | -73,005 | -0.1% |
| JVCKENWOOD | 2 | 50% | +5.4% | 42 | -695,318 | -347,659 | -0.2% |
| Mizuno | 1 | 0% | +7.3% | 43 | -1,168,485 | -1,168,485 | -0.4% |
| Sinko | 2 | 0% | +5.6% | 48 | -1,185,691 | -592,845 | -0.4% |
| Rohto Pharm | 1 | 0% | +6.9% | 39 | -2,882,200 | -2,882,200 | -1.0% |
| Renaissance | 8 | 25% | +16.3% | 53 | -2,934,513 | -366,814 | -1.0% |
| Ateam Holdings | 2 | 50% | +24.6% | 60 | -4,913,544 | -2,456,772 | -1.7% |
| Money Forward | 9 | 22% | +8.6% | 53 | -20,812,499 | -2,312,500 | -7.1% |
Top 10 trades
Biggest winners. Note the realised delta_used column — these are the real per-trade hedge ratios, not a fallback.
| Issuer | RIC | Entry | Exit | Days | Entry cheap% | Exit cheap% | Δ used | Bond entry | Bond exit | Net P&L (¥) | Net bp |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Daifuku | JP267637369= |
2026-04-01 | 2026-05-15 | 32 | +10.9 | +2.9 | 0.025 | 158.34 | 206.35 | 47,323,784 | +4732 |
| OSG Corp | JP273021329= |
2026-03-30 | 2026-05-15 | 34 | +5.1 | +2.3 | 0.037 | 123.25 | 170.25 | 45,318,949 | +4532 |
| Taiyo Yuden | JP270026966= |
2026-03-03 | 2026-05-15 | 53 | +6.3 | +16.3 | 0.018 | 120.75 | 158.00 | 36,128,738 | +3613 |
| Nikkon Holdings | JP294960325= |
2026-03-26 | 2026-03-27 | 1 | +6.7 | +0.9 | 0.045 | 224.75 | 259.62 | 34,455,563 | +3446 |
| Rohm | JP279962206= |
2026-03-06 | 2026-05-15 | 50 | +5.3 | +10.5 | 0.026 | 125.77 | 151.75 | 25,032,578 | +2503 |
| Rohm | JP279962168= |
2026-03-06 | 2026-05-15 | 50 | +5.6 | +9.1 | 0.024 | 120.87 | 145.62 | 23,882,615 | +2388 |
| Nikkon Holdings | JP294960325= |
2026-04-03 | 2026-05-15 | 29 | +6.4 | +7.1 | 0.044 | 238.62 | 262.50 | 23,298,456 | +2330 |
| Obara Group | JP279390296= |
2026-02-16 | 2026-05-11 | 60 | +8.7 | +30.3 | 0.024 | 117.38 | 142.00 | 23,279,010 | +2328 |
| Daifuku | JP267637423= |
2026-04-22 | 2026-05-15 | 17 | +5.0 | +5.6 | 0.026 | 188.62 | 210.38 | 21,349,252 | +2135 |
| Toho Holdings | JP263186893= |
2024-08-02 | 2024-10-25 | 60 | +6.6 | +6.7 | 0.040 | 147.12 | 162.96 | 15,154,680 | +1515 |
Worst 5 trades
The losers. Show these honestly — they're where the strategy's weakness hides.
| Issuer | RIC | Entry | Exit | Days | Entry cheap% | Exit cheap% | Δ used | Bond entry | Bond exit | Net P&L (¥) | Net bp |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Taiyo Yuden | JP270026966= |
2024-08-06 | 2024-10-29 | 60 | +6.4 | +3.0 | 0.018 | 111.75 | 101.75 | -9,776,204 | -978 |
| Toho Holdings | JP263186893= |
2024-11-01 | 2024-12-26 | 39 | +5.7 | +0.8 | 0.031 | 157.12 | 149.50 | -7,652,427 | -765 |
| Money Forward | JP266263856= |
2026-01-15 | 2026-04-09 | 60 | +7.7 | +18.9 | 0.005 | 100.25 | 94.25 | -6,103,543 | -610 |
| Ateam Holdings | JP900013662= |
2024-11-01 | 2025-02-04 | 60 | +24.3 | +67.5 | 0.105 | 100.00 | 100.00 | -5,875,418 | -588 |
| Money Forward | JP266263856= |
2023-08-23 | 2023-11-17 | 60 | +5.5 | +14.4 | 0.007 | 101.35 | 95.62 | -5,863,996 | -586 |
Paper trading · what $1,000,000 would have done
Real money simulation. Starts with $1M USD, walks every hedged trade chronologically, allocates equity ÷ open-slots per new trade, cap of 5 concurrent positions. Cash earns nothing, deployed capital absorbs P&L per the hedged backtest. USD/JPY held at 150 for simplicity.
Equity curve · $1M paper account
Drawdown · how deep did it dip from peak
Sizing sensitivity · concentration vs diversification
Same trades, different position sizing. Each scenario starts with $1M and caps the number of simultaneous positions. Fewer slots = bigger positions = higher returns when right, deeper drawdowns when wrong. Sharpe is the right yardstick because it adjusts for both.
| Slots | Position size | Ending equity | Total return | CAGR | Max drawdown | Sharpe | Trades taken |
|---|---|---|---|---|---|---|---|
| 1 | 100% of equity | $1,206,731 | +20.7% | +6.7% | -7.65% | 0.40 | 12 / 77 |
| 2 | 50% of equity | $1,191,295 | +19.1% | +6.2% | -9.39% | 0.44 | 24 / 77 |
| 3 | 33% of equity | $1,174,635 | +17.5% | +5.7% | -8.80% | 0.42 | 33 / 77 |
| 5 | 20% of equity | $1,173,535 | +17.4% | +5.6% | -3.89% | 0.49 | 46 / 77 |
| 8 | 12% of equity | $1,272,818 | +27.3% | +8.6% | -2.64% | 0.65 | 60 / 77 |
Equity curves · all sizing scenarios
Drawdown curves · all sizing scenarios (lower is worse)
Δ-hedged backtest · realistic P&L with costs
Each trade: long ¥100M face, short Δ × shares. 25bp half-spread on bond, 5bp on equity, 1% JPY financing carry, exit at +60d or when cheap% < 1%.
| Bucket | N trades | Avg days | Avg gross bp | Avg net bp | Median net bp | Hit rate % | Avg costs bp |
|---|---|---|---|---|---|---|---|
| 5-10% | 59 | 42.7 | +437 | +420 | +20 | 56 | 0 |
| 10-15% | 7 | 53.7 | +762 | +741 | -5 | 43 | 1 |
| 15-25% | 11 | 55.0 | -56 | -77 | -7 | 36 | 1 |
Pure bond return by signal strength bucket
Where the model actually has predictive power. The 5–15% range at 60-day horizon is the sweet spot.
| Bucket | Horizon (d) | N | Avg fwd ret % | Median fwd ret % | Hit rate % |
|---|---|---|---|---|---|
| 5-10% | 5 | 457 | +0.28 | +0.00 | 46.0 |
| 5-10% | 20 | 377 | +0.58 | +0.24 | 51.7 |
| 5-10% | 60 | 271 | +7.37 | +7.13 | 71.2 |
| 10-15% | 5 | 296 | +0.21 | +0.00 | 40.2 |
| 10-15% | 20 | 237 | +3.33 | +1.38 | 62.9 |
| 10-15% | 60 | 139 | +7.59 | +5.03 | 78.4 |
| 15-25% | 5 | 190 | +1.32 | +0.00 | 36.8 |
| 15-25% | 20 | 125 | +3.15 | +0.00 | 41.6 |
| 15-25% | 60 | 49 | +4.43 | +0.00 | 49.0 |
Top historical signals (sorted by cheap%)
Strongest cheap signals seen during the backtest period.
| Issuer | RIC | Signal date | Cheap% | Horizon | Fwd bond ret % | Fwd cheap change pp |
|---|---|---|---|---|---|---|
| Ateam Holdings | JP900013662= | 2024-07-24 | +24.9 | 60d | +0.00 | +10.13 |
| Ateam Holdings | JP900013662= | 2024-07-24 | +24.9 | 5d | +0.00 | -4.25 |
| Ateam Holdings | JP900013662= | 2024-07-24 | +24.9 | 20d | +0.00 | +14.01 |
| SRS Holdings | JP901018163= | 2024-09-04 | +24.8 | 5d | +0.00 | -3.66 |
| SRS Holdings | JP901018163= | 2024-09-04 | +24.8 | 20d | +0.00 | -4.97 |
| SRS Holdings | JP901018163= | 2024-09-04 | +24.8 | 60d | +0.00 | -20.43 |
| Renaissance | JP900012378= | 2024-10-29 | +24.7 | 20d | +0.00 | -9.95 |
| Renaissance | JP900012378= | 2024-10-29 | +24.7 | 60d | +0.00 | -12.62 |
| Renaissance | JP900012378= | 2024-10-29 | +24.7 | 5d | +0.00 | -9.70 |
| SRS Holdings | JP901018163= | 2024-08-20 | +24.5 | 60d | +0.00 | -17.87 |
| SRS Holdings | JP901018163= | 2024-08-20 | +24.5 | 20d | +0.00 | -3.01 |
| SRS Holdings | JP901018163= | 2024-08-20 | +24.5 | 5d | +0.00 | +2.46 |
| Renaissance | JP900012378= | 2025-10-01 | +24.4 | 5d | +0.00 | -2.71 |
| Renaissance | JP900012378= | 2025-10-01 | +24.4 | 20d | +0.00 | -5.77 |
| Renaissance | JP900012378= | 2025-10-01 | +24.4 | 60d | +0.00 | -6.60 |
| Ateam Holdings | JP900013662= | 2024-11-20 | +24.4 | 5d | +0.00 | -1.12 |
| Ateam Holdings | JP900013662= | 2024-11-20 | +24.4 | 20d | +0.00 | +54.98 |
| Ateam Holdings | JP900013662= | 2024-11-20 | +24.4 | 60d | +0.00 | +40.88 |
| Ateam Holdings | JP900013662= | 2024-11-28 | +24.3 | 5d | +0.00 | +43.96 |
| Ateam Holdings | JP900013662= | 2024-11-28 | +24.3 | 60d | +0.00 | +43.19 |
| Ateam Holdings | JP900013662= | 2024-11-28 | +24.3 | 20d | +0.00 | +54.25 |
| SRS Holdings | JP901018163= | 2024-09-05 | +24.3 | 60d | +0.00 | -19.34 |
| SRS Holdings | JP901018163= | 2024-09-05 | +24.3 | 20d | +0.00 | -3.74 |
| SRS Holdings | JP901018163= | 2024-09-05 | +24.3 | 5d | +0.00 | -2.68 |
| SRS Holdings | JP901018163= | 2024-08-22 | +24.3 | 5d | +0.00 | +3.43 |
| SRS Holdings | JP901018163= | 2024-08-22 | +24.3 | 20d | +0.00 | -4.15 |
| SRS Holdings | JP901018163= | 2024-08-22 | +24.3 | 60d | +0.00 | -18.43 |
| Ateam Holdings | JP900013662= | 2024-11-01 | +24.3 | 5d | +0.00 | -2.17 |
| Ateam Holdings | JP900013662= | 2024-11-01 | +24.3 | 20d | +0.00 | -0.90 |
| Ateam Holdings | JP900013662= | 2024-11-01 | +24.3 | 60d | +0.00 | +43.18 |
| Renaissance | JP900012378= | 2025-08-04 | +24.1 | 60d | +0.00 | -5.48 |
| Renaissance | JP900012378= | 2025-08-04 | +24.1 | 20d | +0.00 | +4.96 |
| Renaissance | JP900012378= | 2025-08-04 | +24.1 | 5d | +0.00 | -1.58 |
| Daifuku | JP267637423= | 2024-08-19 | +24.1 | 5d | +1.15 | -1.64 |
| Daifuku | JP267637423= | 2024-08-19 | +24.1 | 20d | -0.80 | -8.88 |
| Daifuku | JP267637423= | 2024-08-19 | +24.1 | 60d | +9.05 | -21.17 |
| Daifuku | JP267637369= | 2024-08-29 | +24.1 | 5d | -1.86 | +1.84 |
| Daifuku | JP267637369= | 2024-08-29 | +24.1 | 20d | +1.40 | -8.62 |
| Daifuku | JP267637369= | 2024-08-29 | +24.1 | 60d | +7.09 | -21.42 |
| Renaissance | JP900012378= | 2025-08-14 | +24.1 | 60d | +0.00 | -6.93 |
Caveats — the backtest holds credit spread and JGB curve constant at today's level; doesn't model the short-equity hedge (pure bond P&L); JP CB dealer mids are sticky on illiquid days, biasing cheap signals. Treat as directional, not P&L-tradeable.