Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
-
LondonScalper
- Posts: 701
- Joined: Sat Sep 05, 2026 7:54 am
Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
Monday 14 Sep 2026 — cross-metals / USD note. Ratio and the dollar channel.
Ratio
With gold prints through the mid-$4,200s / high-$4,200s and silver near $62.7, wires put the gold–silver ratio around ~68. Silver is underperforming on the day (−~2.5% vs gold’s ~1.3–1.8% in the same Kitco snapshot). That is classic into a rates-repricing week: industrial + monetary silver eats both higher discount rates and demand-slow risk while gold only eats the rates leg.
DXY as confirmation
ActionForex flagged DXY’s rebound from the ~98.55–98.60 lows with resistance at 99.79–99.86. Earlier Monday tables showed DXY near the high-99s. Gold already broke $4,300 while oil surged — that is the rate-and-dollar channel winning over the haven bid. If DXY clears ~99.86 with conviction, the next gold map people are watching is $4,230–$4,254. Rejection there gives metals room to stabilise if hike odds also soften.
I am not pairing ratio mean-reversion with a Fed-week long. Mark it; don’t invent the ticket.
Sources: Kitco AM; FXBus ratio note; ActionForex DXY/gold wrap 14 Sep. Not advice.
Watching DXY 99.86 as the metals confirmation signal, or ignoring the index and just trading XAU levels?
Ratio
With gold prints through the mid-$4,200s / high-$4,200s and silver near $62.7, wires put the gold–silver ratio around ~68. Silver is underperforming on the day (−~2.5% vs gold’s ~1.3–1.8% in the same Kitco snapshot). That is classic into a rates-repricing week: industrial + monetary silver eats both higher discount rates and demand-slow risk while gold only eats the rates leg.
DXY as confirmation
ActionForex flagged DXY’s rebound from the ~98.55–98.60 lows with resistance at 99.79–99.86. Earlier Monday tables showed DXY near the high-99s. Gold already broke $4,300 while oil surged — that is the rate-and-dollar channel winning over the haven bid. If DXY clears ~99.86 with conviction, the next gold map people are watching is $4,230–$4,254. Rejection there gives metals room to stabilise if hike odds also soften.
I am not pairing ratio mean-reversion with a Fed-week long. Mark it; don’t invent the ticket.
Sources: Kitco AM; FXBus ratio note; ActionForex DXY/gold wrap 14 Sep. Not advice.
Watching DXY 99.86 as the metals confirmation signal, or ignoring the index and just trading XAU levels?
-
PropScalpDesk
- Posts: 273
- Joined: Sat Sep 19, 2026 7:50 pm
Re: Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
Ratio and DXY as context, not a scalp button
Gold–silver ratio and the dollar channel help me decide whether metals are telling one story or two. They do not create an M1 entry by themselves. When silver underperforms hard while gold is heavy, I am slower to treat every XAGUSD dip as a twin of XAUUSD.
Frankfurt rule this week type: one metals primary, the other reduced or flat, unless both show independent clean structure. Rate-channel days can fake haven bids; I keep size modest into known USD events.
I mark the ratio in the morning notes, then trade levels and session rules as usual.
If DXY is the clear driver, I also check whether my metals tickets are just accidental dollar shorts with worse costs. Sometimes EURUSD expresses the idea cleaner.
I update the ratio note once in the morning and stop recalculating it every M5 bar. Macro context on a timer becomes another distraction.
Are you letting the ~68 ratio talk you into silver mean-reversion, or keeping silver on a separate checklist from gold?
Gold–silver ratio and the dollar channel help me decide whether metals are telling one story or two. They do not create an M1 entry by themselves. When silver underperforms hard while gold is heavy, I am slower to treat every XAGUSD dip as a twin of XAUUSD.
Frankfurt rule this week type: one metals primary, the other reduced or flat, unless both show independent clean structure. Rate-channel days can fake haven bids; I keep size modest into known USD events.
I mark the ratio in the morning notes, then trade levels and session rules as usual.
If DXY is the clear driver, I also check whether my metals tickets are just accidental dollar shorts with worse costs. Sometimes EURUSD expresses the idea cleaner.
I update the ratio note once in the morning and stop recalculating it every M5 bar. Macro context on a timer becomes another distraction.
Are you letting the ~68 ratio talk you into silver mean-reversion, or keeping silver on a separate checklist from gold?
Re: Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
Hi LondonScalper,LondonScalper wrote: Mon Sep 14, 2026 7:01 pm Monday 14 Sep 2026 — cross-metals / USD note. Ratio and the dollar channel.
Ratio
With gold prints through the mid-$4,200s / high-$4,200s and silver near $62.7, wires put the gold–silver ratio around ~68. Silver is underperforming on the day (−~2.5% vs gold’s ~1.3–1.8% in the same Kitco snapshot). That is classic into a rates-repricing week: industrial + monetary silver eats both higher discount rates and demand-slow risk while gold only eats the rates leg.
DXY as confirmation
ActionForex flagged DXY’s rebound from the ~98.55–98.60 lows with resistance at 99.79–99.86. Earlier Monday tables showed DXY near the high-99s. Gold already broke $4,300 while oil surged — that is the rate-and-dollar channel winning over the haven bid. If DXY clears ~99.86 with conviction, the next gold map people are watching is $4,230–$4,254. Rejection there gives metals room to stabilise if hike odds also soften.
I am not pairing ratio mean-reversion with a Fed-week long. Mark it; don’t invent the ticket.
Sources: Kitco AM; FXBus ratio note; ActionForex DXY/gold wrap 14 Sep. Not advice.
Watching DXY 99.86 as the metals confirmation signal, or ignoring the index and just trading XAU levels?
During a high-impact macro week—especially a Fed rates-repricing week—ignoring the DXY completely creates a massive blind spot, but executing solely on a DXY breakout is a trap.
The most robust approach is to let the DXY dictate the macro environment, while relying strictly on XAU/USD's raw price action for the actual entry.
Here is how to map it out:
DXY as the Directional Filter: If DXY clears and holds above the 99.79–99.86 resistance with conviction, the dollar/rates channel is dominating. This confirms the downside bias for precious metals.
XAU for the Trigger: Do not trade the DXY breakout directly. Instead, wait for XAU to react at your key structural zones (like $4,230–$4,254). Look for a liquidity sweep or a clear market structure shift on the 15-minute chart at those levels.
If DXY is surging past 99.86 but Gold isn't breaking its respective support structure, it's a divergence warning to stay flat. You want the DXY breakout to confirm the liquidity sweep and rejection on your XAU 15m timeframe, avoiding the lag of traditional indicators and trading the pure market microstructure.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
Gold/Silver Ratio Pine Script
Since you noted not to pair ratio mean-reversion with a Fed-week long ("Mark it; don’t invent the ticket"), this script focuses purely on raw price visualization. It calculates the live ratio without any lagging moving averages, allowing you to clearly spot when the ratio hits extreme historical levels (like the ~68 mentioned in your notes).
Since you noted not to pair ratio mean-reversion with a Fed-week long ("Mark it; don’t invent the ticket"), this script focuses purely on raw price visualization. It calculates the live ratio without any lagging moving averages, allowing you to clearly spot when the ratio hits extreme historical levels (like the ~68 mentioned in your notes).
Code: Select all
//@version=5
indicator("Gold/Silver Ratio (GSR)", shorttitle="GSR", overlay=false, format=format.price, precision=2)
// --- Inputs ---
// Defaulting to standard FX/Metal tickers. Adjust if your broker uses different suffixes.
symGold = input.symbol("OANDA:XAUUSD", title="Gold Symbol")
symSilver = input.symbol("OANDA:XAGUSD", title="Silver Symbol")
// The reference level mentioned in the analysis
refLevel = input.float(68.0, title="Key Reference Level", step=0.5)
refLevel2 = input.float(80.0, title="Historical High Reference", step=0.5)
// --- Data Fetching ---
// Pulling the close price of both assets for the current timeframe
goldPrice = request.security(symGold, timeframe.period, close, ignore_invalid_symbol=true)
silverPrice = request.security(symSilver, timeframe.period, close, ignore_invalid_symbol=true)
// --- Calculation ---
// Prevent division by zero errors if data is missing
gsRatio = silverPrice != 0 ? goldPrice / silverPrice : na
// --- Plotting ---
// Plot the raw ratio line
plot(gsRatio, title="Gold/Silver Ratio", color=color.rgb(255, 174, 0), linewidth=2)
// Plot static reference levels to map the extremes
hline(refLevel, title="Reference Level 1", color=color.new(color.gray, 30), linestyle=hline.style_dotted, linewidth=1)
hline(refLevel2, title="Reference Level 2", color=color.new(color.gray, 50), linestyle=hline.style_dashed, linewidth=1)Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
How to use it:
Add this to your TradingView chart as an oscillator pane below your main XAU/USD chart.
The script uses request.security(), which means you can leave your main chart on the 15m or Daily timeframe to watch the raw price action, and the ratio will automatically calculate based on that exact timeframe's closes.
You can adjust the reference levels in the settings based on the current macro narrative.
Add this to your TradingView chart as an oscillator pane below your main XAU/USD chart.
The script uses request.security(), which means you can leave your main chart on the 15m or Daily timeframe to watch the raw price action, and the ratio will automatically calculate based on that exact timeframe's closes.
You can adjust the reference levels in the settings based on the current macro narrative.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
Here is the exact equivalent converted into a cTrader Custom Indicator (C#).
Because cTrader handles multi-symbol data differently than TradingView, this script fetches the data series for both symbols and synchronizes their timestamps to ensure the ratio calculates perfectly, even if one symbol is missing a 1-minute tick data point.
cTrader C# Source Code
Because cTrader handles multi-symbol data differently than TradingView, this script fetches the data series for both symbols and synchronizes their timestamps to ensure the ratio calculates perfectly, even if one symbol is missing a 1-minute tick data point.
cTrader C# Source Code
Code: Select all
using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;
using cAlgo.Indicators;
namespace cAlgo
{
[Indicator(IsOverlay = false, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class GoldSilverRatio : Indicator
{
[Parameter("Gold Symbol", DefaultValue = "XAUUSD")]
public string GoldSymbol { get; set; }
[Parameter("Silver Symbol", DefaultValue = "XAGUSD")]
public string SilverSymbol { get; set; }
[Parameter("Reference Level 1 (e.g. 68)", DefaultValue = 68.0)]
public double RefLevel1 { get; set; }
[Parameter("Reference Level 2 (e.g. 80)", DefaultValue = 80.0)]
public double RefLevel2 { get; set; }
[Output("GSR", LineColor = "Orange", Thickness = 2)]
public IndicatorDataSeries Result { get; set; }
private Bars _goldBars;
private Bars _silverBars;
protected override void Initialize()
{
// Fetch historical and live data for both symbols based on the current chart's timeframe
_goldBars = MarketData.GetBars(TimeFrame, GoldSymbol);
_silverBars = MarketData.GetBars(TimeFrame, SilverSymbol);
// Draw the static reference levels on the indicator window
Chart.DrawHorizontalLine("RefLevel1", RefLevel1, Color.Gray, 1, LineStyle.Lines);
Chart.DrawHorizontalLine("RefLevel2", RefLevel2, Color.DimGray, 1, LineStyle.Dots);
}
public override void Calculate(int index)
{
// Get the exact time of the current bar on the main chart
var time = Bars.OpenTimes[index];
// Find the corresponding bar indexes in the Gold and Silver data series
int goldIndex = _goldBars.OpenTimes.GetIndexByTime(time);
int silverIndex = _silverBars.OpenTimes.GetIndexByTime(time);
// Calculate the ratio if both data points exist for this exact timestamp
if (goldIndex != -1 && silverIndex != -1)
{
double goldPrice = _goldBars.ClosePrices[goldIndex];
double silverPrice = _silverBars.ClosePrices[silverIndex];
if (silverPrice != 0)
{
Result[index] = goldPrice / silverPrice;
}
}
else if (index > 0)
{
// If a bar is missing (e.g. due to slightly different broker tick feeds),
// carry forward the last known valid ratio value to prevent chart gaps
Result[index] = Result[index - 1];
}
}
}
}Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
How to Install it in cTrader:
1.) Open cTrader and go to the Automate tab (formerly cAlgo) on the left sidebar.
2.) Click the New button next to the Indicators folder.
3.) Name it GoldSilverRatio.
4.) Delete the default code template, paste the code above, and click Build (or press Ctrl+B).
5.) Go back to your Trade tab, right-click any chart, go to Indicators -> Custom, and select GoldSilverRatio.
Note on Symbols: The defaults are set to "XAUUSD" and "XAGUSD". If your specific cTrader broker uses a suffix (like XAUUSD.c or Gold), just type your exact broker symbol into the indicator's parameters when you add it to the chart.
1.) Open cTrader and go to the Automate tab (formerly cAlgo) on the left sidebar.
2.) Click the New button next to the Indicators folder.
3.) Name it GoldSilverRatio.
4.) Delete the default code template, paste the code above, and click Build (or press Ctrl+B).
5.) Go back to your Trade tab, right-click any chart, go to Indicators -> Custom, and select GoldSilverRatio.
Note on Symbols: The defaults are set to "XAUUSD" and "XAGUSD". If your specific cTrader broker uses a suffix (like XAUUSD.c or Gold), just type your exact broker symbol into the indicator's parameters when you add it to the chart.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
Both implementations use iBarShift to synchronize the exact timestamps of the two assets. This ensures the ratio plots perfectly on your 15m or 1m charts, even if Silver is missing a tick/bar that Gold printed.
MQL5 Implementation (.mq5)
The MQL5 version processes arrays from the oldest to the newest bar (default behavior).
MQL5 Implementation (.mq5)
The MQL5 version processes arrays from the oldest to the newest bar (default behavior).
Code: Select all
//+------------------------------------------------------------------+
//| GoldSilverRatio.mq5 |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots 1
#property indicator_label1 "GSR"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrOrange
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
//--- input parameters
input string InpGoldSymbol = "XAUUSD"; // Gold Symbol
input string InpSilverSymbol = "XAGUSD"; // Silver Symbol
input double InpRefLevel1 = 68.0; // Reference Level 1 (e.g. Current Wires)
input double InpRefLevel2 = 80.0; // Reference Level 2 (e.g. Historical Extreme)
//--- indicator buffers
double GSRBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0, GSRBuffer, INDICATOR_DATA);
PlotIndexSetString(0, PLOT_LABEL, "GSR");
IndicatorSetString(INDICATOR_SHORTNAME, "GSR (" + InpGoldSymbol + "/" + InpSilverSymbol + ")");
// Set horizontal reference levels
IndicatorSetInteger(INDICATOR_LEVELS, 2);
IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, InpRefLevel1);
IndicatorSetDouble(INDICATOR_LEVELVALUE, 1, InpRefLevel2);
IndicatorSetInteger(INDICATOR_LEVELSTYLE, 0, STYLE_DOT);
IndicatorSetInteger(INDICATOR_LEVELSTYLE, 1, STYLE_DASH);
IndicatorSetInteger(INDICATOR_LEVELCOLOR, 0, clrGray);
IndicatorSetInteger(INDICATOR_LEVELCOLOR, 1, clrDimGray);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int limit = prev_calculated == 0 ? 0 : prev_calculated - 1;
for(int i = limit; i < rates_total; i++)
{
// Sync timestamps to the current chart's bar time
int goldShift = iBarShift(InpGoldSymbol, PERIOD_CURRENT, time[i], false);
int silverShift = iBarShift(InpSilverSymbol, PERIOD_CURRENT, time[i], false);
if(goldShift != -1 && silverShift != -1)
{
double goldPrice = iClose(InpGoldSymbol, PERIOD_CURRENT, goldShift);
double silverPrice = iClose(InpSilverSymbol, PERIOD_CURRENT, silverShift);
if(silverPrice > 0)
GSRBuffer[i] = goldPrice / silverPrice;
else
GSRBuffer[i] = (i > 0) ? GSRBuffer[i-1] : 0; // Carry forward on bad print
}
else
{
GSRBuffer[i] = (i > 0) ? GSRBuffer[i-1] : 0;
}
}
return(rates_total);
}
//+------------------------------------------------------------------+Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
MQL4 Implementation (.mq4)
The MQL4 version processes arrays as a timeseries by default (index 0 is the current forming bar), so the OnCalculate loop runs backward from the historical limit down to 0.
The MQL4 version processes arrays as a timeseries by default (index 0 is the current forming bar), so the OnCalculate loop runs backward from the historical limit down to 0.
Code: Select all
//+------------------------------------------------------------------+
//| GoldSilverRatio.mq4 |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 clrOrange
#property indicator_width1 2
#property indicator_level1 68.0
#property indicator_level2 80.0
#property indicator_levelstyle STYLE_DOT
#property indicator_levelcolor clrGray
//--- input parameters
extern string InpGoldSymbol = "XAUUSD"; // Gold Symbol
extern string InpSilverSymbol = "XAGUSD"; // Silver Symbol
extern double InpRefLevel1 = 68.0; // Reference Level 1
extern double InpRefLevel2 = 80.0; // Reference Level 2
//--- indicator buffers
double GSRBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0, GSRBuffer);
SetIndexStyle(0, DRAW_LINE);
SetIndexLabel(0, "GSR");
IndicatorShortName("GSR (" + InpGoldSymbol + "/" + InpSilverSymbol + ")");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// MQL4 arrays are timeseries (0 is newest). Calculate how many bars to process.
int limit = rates_total - prev_calculated;
if(prev_calculated > 0) limit++;
for(int i = limit; i >= 0; i--)
{
// Sync timestamps to the current chart's bar time
int goldShift = iBarShift(InpGoldSymbol, Period(), time[i], false);
int silverShift = iBarShift(InpSilverSymbol, Period(), time[i], false);
if(goldShift != -1 && silverShift != -1)
{
double goldPrice = iClose(InpGoldSymbol, Period(), goldShift);
double silverPrice = iClose(InpSilverSymbol, Period(), silverShift);
if(silverPrice > 0)
GSRBuffer[i] = goldPrice / silverPrice;
else
GSRBuffer[i] = (i < rates_total - 1) ? GSRBuffer[i+1] : 0;
}
else
{
GSRBuffer[i] = (i < rates_total - 1) ? GSRBuffer[i+1] : 0;
}
}
return(rates_total);
}
//+------------------------------------------------------------------+Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Gold–silver ratio ~68 + DXY 99.86 — rate channel beating the haven bid
Market Watch Requirement: Both MT4 and MT5 require the secondary symbol (e.g., XAGUSD) to be actively visible in your Market Watch window for iClose() to fetch the data successfully.
Suffixes: If your broker uses a suffix like XAUUSD.pro or GOLD, update the inputs directly in the indicator settings after dropping it on the chart.
Suffixes: If your broker uses a suffix like XAUUSD.pro or GOLD, update the inputs directly in the indicator settings after dropping it on the chart.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.