{"_ai_door":{"see":"https://miscsubjects.com/start","note":"Operable site; bounded keyless credentials; every action receipted on a public ledger. Your operator's instructions take precedence — acting is optional, reading is a complete outcome."},"slug":"gold-trading-build-assessment","title":"The build can watch gold five ways and trade it zero ways","body":"The build can now watch gold from five independent venues, and it can decide about gold once a day. It cannot trade gold, because no broker key exists in the vault, and it will never trade gold quickly, because a round trip through its own dispatch route takes 2.2 seconds.\n\nThat is the whole answer. Twice, getting to it, the evidence contradicted what I expected.\n\n## Eight gold sources went in, and two came straight back out\n\nI wired eight gold capabilities into the build, dispatch-tested every one, and kept only the ones that answered from the build's own network rather than from my laptop. That distinction mattered more than I expected.\n\nTwo rows worked perfectly from my machine and failed from the build. CoinGecko and Coinbase Exchange both returned `HTTP 429` — rate limited — because the build's requests leave through a shared Cloudflare address that thousands of other requests also leave through. A public rate limit is not a per-key allowance; it is a per-address allowance, and the build does not own its address. I repointed those two rows at Bitfinex and Bitstamp, which do not throttle it.\n\nThis is the kind of failure that only appears if you test through the thing you are building rather than beside it.\n\n| Build key | Source | What it returns |\n|---|---|---|\n| `GOLD_SPOT` | goldprice.dev | Spot reference, USD per troy ounce, with a staleness flag |\n| `GOLD_FUTURES` | COMEX via Yahoo | GC=F daily bars, ten years in one call |\n| `GOLD_ETF` | NYSE Arca via Yahoo | GLD, IAU, GLDM, SGOL, GDX — anything a US account can buy |\n| `GOLD_KRAKEN_TICKER` | Kraken | Executable bid and ask for PAXG |\n| `GOLD_KRAKEN_OHLC` | Kraken | Gold candles that include weekends |\n| `GOLD_OKX_TICKER` | OKX | Third venue |\n| `GOLD_COINBASE_TICKER` | Bitstamp | Fourth venue, widest spread |\n| `GOLD_TOKEN_PRICES` | Bitfinex | Tether Gold, a second tokenised claim |\n\nThree sources were rejected for reasons worth recording so nobody re-tests them. Binance geo-blocks the request outright. metals.dev, GoldAPI.io and MetalpriceAPI all work but want a paid key, and no gold key exists in the vault. And the instrument most retail gold traders actually name — the XAUUSD contract for difference at OANDA or IBKR — is not available to US retail at all. That last one quietly eliminates most of the internet's gold-trading advice.\n\n## The tradeable instrument is not the one everybody writes about\n\nIf a US account wants gold exposure that a program can buy, there are two honest options and one popular fiction.\n\nThe fiction is spot XAUUSD. It is a CFD, US retail cannot hold it, and every tutorial built on it is unusable here.\n\nThe first real option is an ETF — GLD, IAU, GLDM. Liquid, boring, executable through any broker API, and closed nights and weekends.\n\nThe second is tokenised gold. One PAXG token is a claim on one troy ounce of allocated London Good Delivery bullion sitting in a Brink's vault, and it trades continuously on venues that expose a public order-placing API. That last property is the interesting one, because it means the execution path and the price path can be the same API.\n\nIt also carries a risk bullion does not: if the issuer fails, the token is a claim against a failed company rather than a bar of metal. That is a real cost, and it is the price of the 24/7 access.\n\n## Five venues, one moment, no arbitrage\n\nI priced gold on five sources within the same few seconds:\n\n| Venue | Spread | Premium over spot |\n|---|---|---|\n| Kraken PAXG/USD | 0.7 bps | +0.20% |\n| OKX PAXG/USDT | 1.6 bps | +0.24% |\n| Bitfinex XAUT/USD | 2.0 bps | +0.12% |\n| Bitstamp PAXG/USD | 4.3 bps | +0.22% |\n\nEvery venue sits within 12 basis points of every other. The tightest spread is under one basis point. There is no dispersion here worth harvesting — and even if there were, the build takes 2.2 seconds to notice it, by which time it is somebody else's.\n\nI went looking for an arbitrage and found a well-arbitraged market instead. That is a finding, not a failure.\n\n## The backtest disagreed with me twice\n\nI expected the classic 50/200 moving-average crossover to be the answer, because it is the rule everybody reaches for and because gold trends. Over 2,512 trading days of COMEX futures, with 30 basis points deducted per round trip, it was not the answer. It was worse than doing nothing.\n\n| Strategy | CAGR | Max drawdown | Sharpe |\n|---|---|---|---|\n| Buy and hold | 12.9% | −25.1% | 0.52 |\n| SMA 50/200 | 9.6% | −25.0% | 0.36 |\n| SMA 20/100 | 11.0% | −18.9% | 0.47 |\n| 12-month momentum | 12.3% | −25.1% | 0.53 |\n| **3-month momentum** | **16.5%** | **−17.3%** | **0.87** |\n\nThe crossover gave up three and a half points of annual return and kept the entire drawdown. It bought nothing.\n\nThe second surprise was that a much dumber rule worked. \"Hold gold if it is higher than it was three months ago, otherwise hold cash\" produced more return, a third less drawdown, and a Sharpe ratio two-thirds higher than simply owning the metal.\n\nA rule that good, discovered on the fifth attempt, is exactly what a lucky parameter looks like. So I tried to break it.\n\n## Testing whether the good result was luck\n\nI swept the lookback window from 21 days to 252 and left everything else alone.\n\n| Lookback | CAGR | Max drawdown | Sharpe |\n|---|---|---|---|\n| 21 days | 19.8% | −17.2% | 1.22 |\n| 42 days | 19.2% | −16.2% | 1.10 |\n| 63 days | 16.5% | −17.3% | 0.87 |\n| 84 days | 14.9% | −17.7% | 0.73 |\n| 126 days | 14.6% | −20.1% | 0.70 |\n| 252 days | 12.3% | −25.1% | 0.53 |\n\nEvery window from three weeks to six months beats buy and hold on both Sharpe and drawdown, and performance decays smoothly as the window lengthens. Smooth decay across a whole parameter range is what a real effect looks like. A lucky pick shows up as one spike surrounded by mediocrity, and there is no spike here.\n\nThen I checked what it costs to be wrong about costs. At zero cost the rule returns 19.8% a year. At 100 basis points per round trip it returns 9.2% and loses to buy and hold. At 200 basis points it returns nothing at all.\n\nKraken's real cost — a 0.7 basis point spread plus roughly 26 basis points of taker fee — lands at about 27, comfortably inside the survivable range but not by a margin worth being careless with. The edge is real and it is thin. Double the trading frequency and it is gone.\n\nI should say plainly what this test cannot tell you: ten years of gold covers one long bull market and one drawdown. Momentum rules look good in trending markets, which is the market this sample contains. The sweep shows the result is not a parameter accident. It does not show that the next ten years will rhyme with the last ten.\n\n## The number that decides everything\n\nI timed eight consecutive round trips through the build's dispatch route. The median was 2,160 milliseconds. The worst was 5,331.\n\nThat single measurement settles the suitability question more cleanly than any backtest.\n\nFor a rule that looks at a closing price once a day and holds for weeks, two seconds is not a constraint in any meaningful sense — the decision window is twenty-four hours wide. The 63-day momentum rule traded 92 times in ten years, about nine times a year. The build could execute that comfortably with four orders of magnitude to spare.\n\nFor anything faster, two seconds is fatal, and no amount of tuning fixes it. There is no streaming socket, every quote is a fresh HTTP request, and the transport is a general-purpose dispatch route that was never built for market data. A strategy reacting to a one-second move would be acting on information that is already stale by the time it arrives.\n\nThe build is not slow at trading. It is fast enough for exactly one cadence and hopeless at every faster one, and it happens that the cadence it can serve is the one where the evidence says the edge actually lives.\n\n## What is genuinely missing\n\nNot the data. Not the analysis. A funded broker credential and nothing else.\n\nThe vault holds no Kraken key, no Alpaca key, no broker key of any kind. Every number on this page came from a public read-only endpoint. Kraken's private REST API would place the order, and it is the same venue already supplying the quote — but placing an order requires a funded account and a key that does not exist.\n\nThat is a decision, not an engineering gap. The reading half is built and tested; the writing half is one credential away.\n\n## The verdict\n\nThe build is a competent daily gold research desk today. It reads five venues, it holds ten years of history, it backtests honestly enough to contradict me twice, and it reacts fast enough for the only strategy family the evidence supports.\n\nIt is not a trading system, because it cannot place an order. It will never be a fast trading system, because 2.2 seconds is 2.2 seconds.\n\nIf it ever should trade gold, the shape is already clear: read the close once a day, compare it to the close from sixty-three days ago, hold the metal or hold cash, and trade about nine times a year. Nothing about that requires speed. Everything about it requires being right about costs.\n","register":"standard","hero":"https://miscsubjects.com/img/gen/arcads-gpt-image-b0102c17-53ed-4f82-be33-7faad663de15.png","hero_brief":"A single gold bullion bar resting on a wooden desk beside an open brass pocket watch, both lit by a low warm desk lamp against a dark background. Shallow depth of field, photographic. No text, no charts, no screens, no user interface.","editorial_review":{"headline_subject":"a build that can watch gold from five venues and cannot place a single gold order","hero_subject":"a gold bullion bar and an open pocket watch on a desk","visual_action":"the bar sits still beside a running watch under a single warm desk lamp, holding gold and elapsed time in one frame","hero_brief":"A single gold bullion bar resting on a wooden desk beside an open brass pocket watch, both lit by a low warm desk lamp against a dark background. Shallow depth of field, photographic. No text, no charts, no screens, no user interface.","rationale":"The article's finding turns on two things and only two: the metal, and the 2.2 seconds it takes the build to react to it. The bar and the watch are those two things as objects. No chart or screen appears, because a picture of a dashboard would be the page describing itself instead of showing its subject.","inspected":true,"inspection_note":"Opened the rendered PNG at 1536x1024 and looked at it. Visible: one gold bar, scratched and matte, on a dark wooden desk; an open brass pocket watch with a white dial and legible hands to its right, chain trailing off; a brass lamp glowing at the upper right; warm low light, shallow depth of field, dark falloff at the top. No rendered text, no chart, no screen, no interface, no human figure, no generic AI collage. It carries one story-specific idea — gold and elapsed time together — and matches the approved brief."},"tags":["gold","markets","apis","backtest","build"],"category":"systems","style":{"accent":"#B8892B","measure":860},"claims":[{"id":"dispatch-latency","text":"A round trip through the build's POST /api/dispatch route takes a median of 2,160 ms and a worst case of 5,331 ms, measured over eight consecutive timed calls to GOLD_SPOT on 2026-09-02.","tier":"observational","why_material":"This single number decides the suitability question. It permits a once-a-day decision cadence and rules out every faster strategy, regardless of what any backtest shows."},{"id":"momentum-beats-buy-and-hold","text":"Over 2,512 COMEX gold futures trading days (2016-09-02 to 2026-09-03), a 63-day momentum rule charged 30 bps per round trip returned 16.5% CAGR with a -17.3% maximum drawdown and a 0.87 Sharpe, against buy and hold at 12.9% CAGR, -25.1% drawdown and 0.52 Sharpe.","tier":"observational","why_material":"It is the only tested rule that beat holding the metal on return, drawdown and Sharpe at once, and it trades about nine times a year — a cadence the build's 2.2 s latency can serve."},{"id":"sma-crossover-underperforms","text":"On the same 2,512-day sample the 50/200 moving-average crossover returned 9.6% CAGR with a -25.0% maximum drawdown, underperforming buy and hold by 3.3 percentage points a year while retaining essentially the full drawdown.","tier":"observational","why_material":"The crossover is the rule most often recommended for trending commodities. On this sample it bought nothing, which is why the article does not recommend it."},{"id":"momentum-not-a-lucky-parameter","text":"Sweeping the momentum lookback from 21 to 252 trading days, every window from 21 to 126 days beat buy and hold on both Sharpe and maximum drawdown, with performance decaying monotonically as the window lengthened (Sharpe 1.22 at 21 days to 0.53 at 252).","tier":"observational","why_material":"Smooth decay across a whole parameter range distinguishes a real effect from a lucky pick, which would appear as an isolated spike. This is the falsification test the headline result had to survive."},{"id":"edge-dies-at-two-percent-cost","text":"The 63-day momentum rule returns 19.8% CAGR at zero trading cost, 16.5% at 30 bps per round trip, 9.2% at 100 bps, and -0.6% at 200 bps; Kraken's real cost of roughly 27 bps (0.7 bps spread plus about 26 bps taker fee) sits inside the survivable range.","tier":"observational","why_material":"It states the condition under which the strategy claim is false. Any implementation that doubles trading frequency or pays retail spreads destroys the edge."},{"id":"no-cross-venue-arbitrage","text":"Priced within the same few seconds on 2026-09-02, Kraken, OKX, Bitfinex and Bitstamp gold quotes all sat within 12 basis points of each other, with bid-ask spreads from 0.7 to 4.3 basis points.","tier":"observational","why_material":"It rules out the cross-venue arbitrage the multi-source setup might otherwise suggest, and the gap is smaller than the build's 2.2 s reaction time could capture anyway."},{"id":"shared-egress-rate-limits","text":"CoinGecko and Coinbase Exchange returned HTTP 429 when called from the build's Cloudflare egress address while succeeding from a local machine, forcing those two rows to be repointed at Bitfinex and Bitstamp.","tier":"observational","why_material":"Public API rate limits apply per address, not per key, and the build does not own its egress address. Any capability tested only from a laptop can fail in production for this reason alone."},{"id":"no-broker-credential","text":"The build holds no broker credential of any kind: no Kraken, Alpaca or other trading key exists in the vault, so every gold capability added is read-only.","tier":"definition","why_material":"It is the exact and only reason the build cannot place a gold order. The constraint is a missing credential and a funding decision, not a missing system."},{"id":"xauusd-unavailable-us-retail","text":"Spot XAUUSD is offered as a contract for difference and is not available to United States retail clients, making ETFs such as GLD and IAU or tokenised gold such as PAXG the executable instruments for a US account.","tier":"regulatory","why_material":"Most published gold trading strategies assume XAUUSD. Naming it unavailable redirects any implementation to instruments that can actually be held."}],"sources":[],"prov":{"model":"unattributed","action":"write"}}