Bu5hm4nn
dc4ee1f261
feat(CONV-001): add GLD launch date validation, feat(DATA-DB-003): add cache CLI
...
CONV-001:
- Add GLD_LAUNCH_DATE constant (November 18, 2004)
- Validate reference_date in gld_ounces_per_share()
- Raise ValueError for dates before GLD launch
- Update docstring with valid date range
- Add comprehensive test coverage for edge cases
DATA-DB-003:
- Create scripts/cache_cli.py with three commands:
- vault-dash cache stats: Show cache statistics
- vault-dash cache list: List cached entries
- vault-dash cache clear: Clear all cache files
- Add Makefile targets: cache-stats, cache-list, cache-clear
- Integrate with DatabentoHistoricalPriceSource methods
2026-03-29 12:00:30 +02:00
Bu5hm4nn
9a3b835c95
feat(DATA-DB-004): add Databento settings UI and independent scenario config
...
- Updated backtests page with Data Source card
- Data source selector (databento/yfinance/synthetic)
- Dataset dropdown (XNAS.BASIC, GLBX.MDP3)
- Resolution dropdown (ohlcv-1d, ohlcv-1h)
- Cost estimate display (placeholder for now)
- Added Scenario Configuration card
- Underlying symbol selector (GLD/GC/XAU)
- Start/end date inputs
- Start price input (0 = auto-derive)
- Underlying units, loan amount, margin call LTV
- BacktestPageService updates:
- get_historical_prices() with data_source parameter
- get_cost_estimate() for Databento cost estimation
- get_cache_stats() for cache status display
- Support for injected custom provider identity
- DataSourceInfo for provider metadata
- BacktestSettingsRepository integration:
- Load/save settings per workspace
- Default values from BacktestSettings.create_default()
- Test update: TLT validation message changed to reflect
new multi-symbol support (GLD, GC, XAU)
2026-03-29 11:12:11 +02:00
Bu5hm4nn
43067bb275
feat(DATA-DB-002): add BacktestSettings model and repository
...
- BacktestSettings dataclass with all configuration fields
- BacktestSettingsRepository for persistence per workspace
- Settings independent of portfolio configuration
- Full validation for dates, symbols, LTV, etc.
- 16 comprehensive tests
Fields:
- settings_id, name: identification
- data_source: databento|yfinance|synthetic
- dataset, schema: Databento configuration
- start_date, end_date: date range
- underlying_symbol, start_price, underlying_units: position config
- loan_amount, margin_call_ltv: LTV analysis
- template_slugs: strategies to test
- cache_key, data_cost_usd: caching metadata
- provider_ref: provider configuration
2026-03-29 10:46:25 +02:00
Bu5hm4nn
bf13ab5b46
feat(DATA-DB-001): add Databento historical price source for backtesting
...
- Add DatabentoHistoricalPriceSource implementing HistoricalPriceSource protocol
- Smart caching with Parquet storage and metadata tracking
- Auto symbol-to-dataset resolution (GLD→XNAS.BASIC, GC=F→GLBX.MDP3)
- Cache management with age threshold invalidation
- Cost estimation via metadata.get_cost()
- Add databento>=0.30.0 to requirements.txt
- Add DATABENTO_API_KEY to .env.example
- Full test coverage with 16 tests
2026-03-29 09:58:02 +02:00
Bu5hm4nn
bb06fa7e80
feat(PORTFOLIO-003): add premium and spread for physical gold positions
2026-03-28 23:53:46 +01:00
Bu5hm4nn
0e972e9dd6
feat(PORTFOLIO-002): add position storage costs
2026-03-28 23:48:41 +01:00
Bu5hm4nn
dac0463d55
feat(DISPLAY-002): GLD mode shows real share prices
2026-03-28 21:45:00 +01:00
Bu5hm4nn
1a39956757
feat(PORTFOLIO-001): add position-level portfolio entries
2026-03-28 21:29:30 +01:00
Bu5hm4nn
3b98ebae69
feat(DATA-004): add underlying instrument selector
2026-03-28 16:40:18 +01:00
Bu5hm4nn
3bf3774191
Merge branch 'feature/PRICING-002-basis-display'
2026-03-28 09:18:29 +01:00
Bu5hm4nn
9d06313480
feat(PRICING-002): add GLD/GC=F basis display on overview
2026-03-28 09:18:26 +01:00
Bu5hm4nn
966cee7963
feat(PRICING-003): use true GLD backing for hedge contract count
2026-03-28 09:18:26 +01:00
Bu5hm4nn
894d88f72f
feat(PRICING-001): add GLD expense ratio decay correction
2026-03-28 09:04:35 +01:00
Bu5hm4nn
4620234967
feat(EXEC-001): add hedge strategy builder
2026-03-27 22:33:20 +01:00
Bu5hm4nn
554a41a060
refactor(BT-001C): share historical fixture provider
2026-03-27 21:41:50 +01:00
Bu5hm4nn
477514f838
feat(BT-002): add historical snapshot provider
2026-03-27 18:31:28 +01:00
Bu5hm4nn
1a6760bee3
feat(PORT-003): add historical ltv charts
2026-03-27 16:39:33 +01:00
Bu5hm4nn
3c9ff201e1
feat(BT-003B): add event comparison drilldown
2026-03-26 22:05:31 +01:00
Bu5hm4nn
bdf56ecebe
fix(CORE-001D): close boundary review gaps
2026-03-26 17:34:09 +01:00
Bu5hm4nn
94f3c1ef83
feat(CORE-001D): close remaining boundary cleanup slices
2026-03-26 17:27:44 +01:00
Bu5hm4nn
99d22302ee
fix(CORE-001D3B): validate alert history entry types
2026-03-26 15:19:42 +01:00
Bu5hm4nn
65da5b8f1d
fix(CORE-001D3B): reject malformed alert history entries
2026-03-26 15:16:21 +01:00
Bu5hm4nn
ff76e326b1
feat(CORE-001D3B): surface alert history degraded state
2026-03-26 15:12:04 +01:00
Bu5hm4nn
38d244356c
refactor(settings): separate preview validation from internal failures
2026-03-26 15:00:53 +01:00
Bu5hm4nn
e860c40567
fix(settings): reject fractional refresh intervals
2026-03-26 14:05:49 +01:00
Bu5hm4nn
2759d9a36f
fix(settings): track dirty state across all inputs
2026-03-26 13:59:56 +01:00
Bu5hm4nn
cfa3cfcc08
fix(settings): clarify last-saved status state
2026-03-26 13:54:56 +01:00
Bu5hm4nn
f7c134a709
fix(settings): preserve whole-dollar loan formatting
2026-03-26 13:34:34 +01:00
Bu5hm4nn
ea3b384103
fix(settings): fail closed on blank loan input
2026-03-26 13:28:30 +01:00
Bu5hm4nn
753e9d3146
fix(CORE-001D3A): accept decimal boundary inputs
2026-03-26 13:19:18 +01:00
Bu5hm4nn
bb557009c7
feat(CORE-001D3A): normalize alerts and settings service boundaries
2026-03-26 13:10:30 +01:00
Bu5hm4nn
91f67cd414
fix(pre-alpha): preserve injected provider identity
2026-03-26 12:32:52 +01:00
Bu5hm4nn
52d943e614
fix(pre-alpha): preserve injected template services
2026-03-26 12:26:38 +01:00
Bu5hm4nn
d7117bb6a3
fix(pre-alpha): preserve injected backtest services
2026-03-26 12:18:39 +01:00
Bu5hm4nn
18fd0681ca
refactor(pre-alpha): align preview and runtime fixture validation
2026-03-26 12:11:45 +01:00
Bu5hm4nn
68275c4d18
refactor(pre-alpha): fail closed on historical fixture bounds
2026-03-26 12:04:42 +01:00
Bu5hm4nn
f38d0a53a9
refactor(pre-alpha): fail closed on historical preview fallbacks
2026-03-26 11:55:45 +01:00
Bu5hm4nn
78de8782c4
fix(UX-001): address layout review findings
2026-03-26 10:24:52 +01:00
Bu5hm4nn
a60c5fb1f2
feat(UX-001): add full-width two-pane dashboard layout
2026-03-25 23:19:09 +01:00
Bu5hm4nn
695f3d07ed
fix(CORE-002C): explain undercollateralized historical seeds
2026-03-25 21:44:30 +01:00
Bu5hm4nn
87900b01bf
fix(CORE-002C): align historical units with workspace weight
2026-03-25 21:37:55 +01:00
Bu5hm4nn
aae67dfd9b
fix(workspaces): seed new defaults from live quote
2026-03-25 19:48:58 +01:00
Bu5hm4nn
782e8f692e
fix(portfolio): default new workspaces to 100 oz
2026-03-25 19:42:54 +01:00
Bu5hm4nn
bfb6c71be3
fix(pricing): correct relative hedge payoff calculations
2026-03-25 19:27:26 +01:00
Bu5hm4nn
5217304624
feat(CORE-001D2B): normalize options cache boundaries
2026-03-25 19:05:00 +01:00
Bu5hm4nn
442a0cd702
feat(CORE-001D2A): tighten quote provider cache normalization
2026-03-25 17:10:11 +01:00
Bu5hm4nn
829c0b5da2
feat(CORE-002B): roll out hedge quote unit conversion
2026-03-25 15:46:44 +01:00
Bu5hm4nn
f0d7ab5748
feat(CORE-002): add GLD share quote conversion seam
2026-03-25 14:52:48 +01:00
Bu5hm4nn
132aaed512
feat(CORE-001D1): harden unit-aware workspace persistence
2026-03-25 13:19:33 +01:00
Bu5hm4nn
40f7e74a1b
feat(SEC-001): protect workspace bootstrap with turnstile
2026-03-25 10:02:10 +01:00