signal.txt · signal.json · signal.csv

Signal feed for Expert Advisors

Plain static files your MetaTrader 4 Expert Advisor can read with WebRequest.

Updated · Spot 4,013.03 (+19.37, +0.49%)

Endpoints

FileUse
https://povertysux.co/signal.txtOne line separated by vertical bars. Easiest for MetaTrader 4.
https://povertysux.co/signal.jsonEvery field, including counts, timeframes and the next event.
https://povertysux.co/signal.csvHeader row plus one data row, for spreadsheets.
https://povertysux.co/signal-history.jsonThe last 24 hourly readings.

All files are plain static files, rebuilt every hour on weekdays, cached for at most one minute, and readable from any origin. There is no key. One request every five minutes is plenty, because the reading changes once an hour.

signal.txt format

NEUTRAL|0|4013.03|2026-10-26T20:13:46Z|2026-10-26T21:23:46Z|4003.70|4022.00|4018.00|0|1
PositionFieldMeaning
1signalSTRONG_BUY, BUY, NEUTRAL, SELL or STRONG_SELL
2signal_code2, 1, 0, -1 or -2 (same meaning as signal)
3spotApproximate spot price at the reading, US dollars per ounce
4updated_utcTime of the reading, Coordinated Universal Time
5valid_until_utcThe reading expires 70 minutes after it was made; reject it after this time
6supportNearest support below price
7resistanceNearest resistance above price
8invalidationLevel where the hourly outlook stops working
9event_risk1 when a scheduled major release is close, otherwise 0
10versionFormat version; new fields are only ever added at the end

Step 1: allow the web address in MetaTrader 4

  1. In MetaTrader 4 open Tools, then Options, then the Expert Advisors tab.
  2. Tick Allow WebRequest for listed URL.
  3. Double-click the empty row (or the green plus sign) and add https://povertysux.co, the address without /signal.txt.
  4. Click OK. Without this step WebRequest fails with error 4060.

Step 2: add the include file to your Expert Advisor

Copy GoldSignalWebRequest.mqh to MQL4\Include in your data folder (File, Open Data Folder), add #include <GoldSignalWebRequest.mqh> to your Expert Advisor, and call GoldSignal_Update() from a timer. It downloads at most once per poll interval (300 seconds by default), checks the expiry time and returns false when the reading is missing or out of date. The example Expert Advisor GoldSignalReader_Example.mq4 shows the reading on the chart.

// --- example use (copied onto the website's signal feed page) ---
// #include <GoldSignalWebRequest.mqh>
// (input GoldSignal_URL defaults to https://povertysux.co/signal.txt)
//
// int OnInit()  { EventSetTimer(30); GoldSignal_Update(true); return(INIT_SUCCEEDED); }
// void OnDeinit(const int reason) { EventKillTimer(); }
// void OnTimer()
//   {
//    GoldSignal_Update();                 // downloads at most once every GoldSignal_PollSeconds
//    int code = GoldSignal_Code();        // 2, 1, 0, -1, -2, or 99 when missing or out of date
//    if(code == GOLD_SIGNAL_NONE) return; // never trade on a missing or stale reading
//    if(code >= GOLD_SIGNAL_BUY)  { /* your buy logic and risk checks */ }
//    if(code <= GOLD_SIGNAL_SELL) { /* your sell logic and risk checks */ }
//   }

Important limits

Full JSON example

{
  "symbol": "XAUUSD",
  "updated_utc": "2026-10-26T20:13:46Z",
  "updated_ny": "2026-10-26T16:13:46-04:00",
  "valid_until_utc": "2026-10-26T21:23:46Z",
  "signal": "NEUTRAL",
  "signal_code": 0,
  "hourly_summary": "Neutral",
  "ma_summary": "Strong Sell",
  "indicator_summary": "Strong Buy",
  "counts": {
    "moving_averages": {
      "buy": 3,
      "neutral": 0,
      "sell": 9
    },
    "indicators": {
      "buy": 7,
      "neutral": 2,
      "sell": 2,
      "overbought": 0,
      "oversold": 0
    },
    "buy": 10,
    "neutral": 2,
    "sell": 11
  },
  "score": 0,
  "timeframes": {
    "15m": "Strong Sell",
    "30m": "Sell",
    "1h": "Neutral",
    "5h": "Strong Sell",
    "1d": "Strong Sell",
    "1wk": "Strong Sell"
  },
  "bias": "Neutral, leaning sell on rallies (range into the 5 PM break)",
  "confidence": "low",
  "spot": 4013.03,
  "spot_bid": 4012.7,
  "spot_ask": 4013.36,
  "change": 19.37,
  "change_pct": 0.49,
  "futures": 4025.7,
  "futures_symbol": "GC=F",
  "gap": 14.24,
  "support": 4003.7,
  "support_label": "1-hour swing high Sun 18:00",
  "resistance": 4022.0,
  "resistance_label": "1-hour swing high Mon 04:00",
  "invalidation": 4018.0,
  "event_risk": false,
  "next_event": {
    "what": "Durable goods orders",
    "when_ny": "2026-10-27T08:30:00-04:00",
    "when_utc": "2026-10-27T12:30:00Z"
  },
  "version": "1",
  "source_note": "Hourly technical reading computed from delayed COMEX gold futures (about 10 minutes) converted to approximate spot with a measured futures-minus-spot gap. Broker prices can differ by a few dollars.",
  "disclaimer": "Analysis only, not financial advice. Trading leveraged products carries a high risk of loss.",
  "url": "https://povertysux.co/signal.json"
}