Files
robinhood/docs/archive/GOLD_PRICE_CLEANUP_SUMMARY.md
Krikorios 48e60d015f feat: Add Phase 4 advanced metrics and components
- Add advanced metrics dashboard with trade analytics
- Add new trading components (EntryTypeAnalysis, MultiDayPositionTracker, NewsEventTracker, etc.)
- Add strategy mode selector and trend confirmation
- Add risk automation panel and slippage correlation analysis
- Add daily trading plan enhancements with modal components
- Add custom hooks (useApi, useLocalStorage, useAdvancedTradeMetrics)
- Add broker service integration and trading API
- Add test setup and vitest configuration
- Include parquet data files for live market data
- Add comprehensive documentation in docs/ folder
2025-11-27 10:23:58 +02:00

7.9 KiB
Raw Permalink Blame History

Gold Price Integration - Cleanup Summary

Date: November 23, 2025

Overview

Successfully integrated BullionVault as the primary gold price data source and cleaned up redundant endpoints.


Removed/Deprecated Components

1. Deprecated API File

  • File: /backend/app/api/gold_market.pygold_market.py.deprecated
  • Reason: Functionality consolidated into /api/market.py with BullionVault integration
  • Endpoints Removed:
    • GET /api/gold/quote - Now handled by /api/market/gold/current
    • GET /api/gold/intraday - Historical data available via other endpoints
    • GET /api/gold/status - Data source info available in market endpoint

2. Removed Router Registration

  • File: /backend/app/main.py
  • Change: Removed gold_market.router import and registration
  • Impact: /api/gold/* endpoints no longer available (functionality moved to /api/market/gold/*)

Active Components (Kept for Fallback)

Primary Gold Price Services

These services remain active in the fallback chain:

  1. BullionVault Service PRIMARY SOURCE

    • File: /backend/app/services/metals/bullionvault_service.py
    • Status: Active - Primary data source
    • Endpoint: https://chart-data.bullionvault.com/prices/CSV/AUX/USD/600/Full
    • Current Price: $4,065.32/oz
    • Purpose: Professional bullion market real-time prices
  2. Gold Price Fetcher (Multi-source with GLD ETF)

    • File: /backend/app/services/metals/gold_price_fetcher.py
    • Status: Active - Fallback source
    • Purpose: GLD ETF-based pricing (Alpha Vantage) with 10x multiplier
    • Current Price: ~$3,742.70/oz
  3. GoldPrice.org Service

    • File: /backend/app/services/metals/goldprice.py
    • Status: Active - Fallback source
    • Purpose: Spot price data from goldprice.org API
    • Used: When BullionVault and GLD fetcher fail
  4. yFinance Provider

    • File: /backend/app/services/metals/yfinance_provider.py
    • Status: Active - Fallback source
    • Purpose: Yahoo Finance data for GC=F (gold futures)
    • Note: Often returns no data, but kept for fallback
  5. Yahoo FX Service

    • File: /backend/app/services/metals/yahoo_fx.py
    • Status: Active - Fallback source
    • Purpose: Direct Yahoo currency data
    • Used: Lower priority fallback
  6. Alpha Vantage FX

    • File: /backend/app/services/metals/alpha_fx.py
    • Status: Active - Fallback source
    • Purpose: Alpha Vantage FX intraday data (XAUUSD)
    • Used: Last external source before simulator

📊 Current Data Flow

GET /api/market/gold/current

Priority Chain:

1. BullionVault API (https://chart-data.bullionvault.com)
   ├─ Success: Return $4,065.32/oz ✅
   └─ Failure: ↓
   
2. Gold Price Fetcher (GLD ETF × 10)
   ├─ Success: Return ~$3,742/oz
   └─ Failure: ↓
   
3. GoldPrice.org
   ├─ Success: Return spot price
   └─ Failure: ↓
   
4. yFinance (GC=F)
   ├─ Success: Return futures price
   └─ Failure: ↓
   
5. Yahoo FX Direct
   ├─ Success: Return FX price
   └─ Failure: ↓
   
6. Alpha Vantage FX
   ├─ Success: Return intraday price
   └─ Failure: ↓
   
7. Simulator (Last Resort)
   └─ Return generated price

🎯 Integration Status

Completed

  • BullionVault API discovery and integration
  • CSV parser for BullionVault data format
  • Multi-currency support (USD, GBP, EUR, JPY, AUD, CAD, CHF)
  • Multiple timeframe support (10m, 1h, 6h, 1d, 1w, 1m, 3m, 1y, 5y, 20y)
  • Integration with market.py endpoints
  • Fallback chain implementation
  • Cleanup of redundant gold_market.py endpoints
  • Router removal from main.py

🔄 In Progress

  • Frontend verification with BullionVault prices
  • Update historical parquet files with current price levels
  • Add BullionVault health monitoring/alerts

📋 To Do

  • Consider removing yfinance_provider.py if consistently failing
  • Add metrics/logging for data source selection
  • Create admin dashboard showing active data source
  • Performance testing with BullionVault as primary

📝 API Endpoints Reference

Active Endpoints

Primary Gold Market Endpoint

GET /api/market/gold/current
Response: MarketDataResponse with accurate real-time prices
Source: BullionVault → GLD ETF → fallback chain
Current Price: $4,065.32/oz

Historical Data

GET /api/market/gold/historical
Parameters: interval, limit
Returns: OHLCV candlestick data

OHLC Data

GET /api/ohlcv
Parameters: symbol=XAUUSD, timeframe, limit
Returns: Historical bars

Deprecated Endpoints (Removed)

❌ GET /api/gold/quote → Use /api/market/gold/current
❌ GET /api/gold/intraday → Use /api/ohlcv or /api/market/gold/historical
❌ GET /api/gold/status → Integrated into /api/status

🔧 Configuration

BullionVault Settings

# Base URL
BASE_URL = "https://chart-data.bullionvault.com"

# Metal Codes
AUX = Gold
AGX = Silver
PTX = Platinum
PDX = Palladium

# Interval Codes (seconds between data points)
5 = 10 minutes
15 = 1 hour
120 = 6 hours
600 = 1 day (default)
3600 = 1 week
14400 = 1 month
43200 = 3 months
172800 = 1 year
864000 = 5 years
2592000 = 20 years

Cache TTL Settings

RELIABLE_GOLD_CACHE_TTL_SEC = 60  # BullionVault/GLD cache
GOLDPRICE_CACHE_TTL_SEC = 10      # GoldPrice.org cache
YFINANCE_CACHE_TTL_SEC = 45       # yFinance cache
YAHOO_CACHE_TTL_SEC = 60          # Yahoo FX cache
ALPHA_CACHE_TTL_SEC = 55          # Alpha Vantage cache

🧪 Testing Commands

Test BullionVault Service

cd /Users/user/Downloads/gold-trading-simulator/backend
PYTHONPATH=. venv/bin/python -c "
import asyncio
from app.services.metals.bullionvault_service import get_bullionvault_gold_price

async def test():
    price_data = await get_bullionvault_gold_price('USD')
    print(f\"Price: \${price_data['price']:.2f}/oz\")
    
asyncio.run(test())
"

Test Market Endpoint

curl http://localhost:8000/api/market/gold/current | jq

Expected Response

{
  "symbol": "XAU/USD",
  "price": 4065.32,
  "change": 0.00,
  "change_percent": 0.0000,
  "high_24h": 4065.32,
  "low_24h": 4065.32,
  "volume": 0.0
}

📈 Price Accuracy Verification

Source Price Accuracy Status
BullionVault $4,065.32/oz Accurate Primary
GLD ETF × 10 $3,742.70/oz ⚠️ Lower Fallback
GoldPrice.org Varies ⚠️ Delayed Fallback
yFinance Often fails Unreliable Fallback
Yahoo FX Varies ⚠️ Mixed Fallback
Alpha Vantage FX Varies ⚠️ Mixed Fallback
Simulator ~$2,034/oz Outdated Last Resort

Conclusion: BullionVault provides the most accurate real-time gold prices at $4,065.32/oz, matching current market conditions.


🚀 Deployment Notes

Environment Variables

No new environment variables required. BullionVault API is public and doesn't require authentication.

Dependencies

All required dependencies already installed:

  • httpx - For async HTTP requests
  • csv module - For CSV parsing (stdlib)

Monitoring

  • Monitor BullionVault API availability
  • Track fallback source usage frequency
  • Alert on excessive fallback usage (indicates BullionVault issues)

📚 References

  • BullionVault CSV API: https://chart-data.bullionvault.com
  • BullionVault Chart Documentation: Provided by user
  • Alpha Vantage API: Using for GLD ETF data
  • Market API Documentation: /api/market/gold/current

Sign-off

Integration Status: Complete Price Accuracy: Verified ($4,065.32/oz) Cleanup Status: Redundant endpoints removed Fallback Chain: Operational Ready for Testing: Yes

Next Action: Frontend integration testing and user acceptance testing