From f6d95de49fa5d63c2ad5e49e135807b1bbc58d21 Mon Sep 17 00:00:00 2001 From: DiTus Date: Wed, 29 Jul 2026 17:02:15 +0200 Subject: [PATCH] Add GOLD/SILVER ratio indicator to dashboard Add gold_silver_ratio indicator (xyz:GOLD / xyz:SILVER) with fallback reference of 61.59, mirroring the existing WTI/BRENT ratio setup. Also register xyz:GOLD and xyz:SILVER in WATCHED_COINS and data_fetcher defaults so the candle data is fetched for the new indicator. --- WIKI/indicators.md | 13 +++++++++++++ _data/indicators.json | 10 ++++++++++ data_fetcher.py | 2 +- main_app.py | 6 ++++-- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/WIKI/indicators.md b/WIKI/indicators.md index 1940ab3..4706cd9 100644 --- a/WIKI/indicators.md +++ b/WIKI/indicators.md @@ -73,6 +73,19 @@ Computes `numerator / denominator`. - **1D Change**: compares to ratio from 1d candle close prices - **Deviation**: `(current - long_avg) / long_avg * 100`, where `long_avg` is the mean of daily ratios over all available history. If fewer than `min_data_points` (default 100) daily data points exist and `fallback_reference` is set, the fallback value is used instead. +```json +"gold_silver_ratio": { + "display_name": "GOLD/SILVER", + "type": "ratio", + "numerator": "xyz:GOLD", + "denominator": "xyz:SILVER", + "changes": ["1h", "1d"], + "show_deviation": true, + "min_data_points": 100, + "fallback_reference": 61.59 +} +``` + ### `price` — Single Price ```json diff --git a/_data/indicators.json b/_data/indicators.json index 211cace..166b3bd 100644 --- a/_data/indicators.json +++ b/_data/indicators.json @@ -8,5 +8,15 @@ "show_deviation": true, "min_data_points": 100, "fallback_reference": 0.96065 + }, + "gold_silver_ratio": { + "display_name": "GOLD/SILVER", + "type": "ratio", + "numerator": "xyz:GOLD", + "denominator": "xyz:SILVER", + "changes": ["1h", "1d"], + "show_deviation": true, + "min_data_points": 100, + "fallback_reference": 61.59 } } diff --git a/data_fetcher.py b/data_fetcher.py index adf957a..a09e64a 100644 --- a/data_fetcher.py +++ b/data_fetcher.py @@ -175,7 +175,7 @@ if __name__ == "__main__": parser.add_argument( "--coins", nargs='+', - default=["BTC", "ETH", "xyz:BRENTOIL", "xyz:CL"], + default=["BTC", "ETH", "xyz:BRENTOIL", "xyz:CL", "xyz:GOLD", "xyz:SILVER"], help="List of coins to fetch (e.g., BTC ETH), or 'all' to fetch all coins." ) parser.add_argument("--interval", default="1m", help="Candle interval (e.g., 1m, 5m, 1h).") diff --git a/main_app.py b/main_app.py index a729fcb..8d2a397 100644 --- a/main_app.py +++ b/main_app.py @@ -23,11 +23,13 @@ from dashboard import DashboardRenderer from rich.live import Live # --- Configuration --- -WATCHED_COINS = ["BTC", "ETH", "SOL", "BNB", "HYPE", "SUI", "xyz:BRENTOIL", "xyz:CL"] +WATCHED_COINS = ["BTC", "ETH", "SOL", "BNB", "HYPE", "SUI", "xyz:BRENTOIL", "xyz:CL", "xyz:GOLD", "xyz:SILVER"] # Display name mapping for dashboard (internal symbol -> display name) COIN_DISPLAY_NAMES = { "xyz:BRENTOIL": "BRENT", - "xyz:CL": "WTI" + "xyz:CL": "WTI", + "xyz:GOLD": "GOLD", + "xyz:SILVER": "SILVER" } LIVE_CANDLE_FETCHER_SCRIPT = "live_candle_fetcher.py" RESAMPLER_SCRIPT = "resampler.py"