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
| File | Use |
|---|---|
https://povertysux.co/signal.txt | One line separated by vertical bars. Easiest for MetaTrader 4. |
https://povertysux.co/signal.json | Every field, including counts, timeframes and the next event. |
https://povertysux.co/signal.csv | Header row plus one data row, for spreadsheets. |
https://povertysux.co/signal-history.json | The 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
| Position | Field | Meaning |
|---|---|---|
| 1 | signal | STRONG_BUY, BUY, NEUTRAL, SELL or STRONG_SELL |
| 2 | signal_code | 2, 1, 0, -1 or -2 (same meaning as signal) |
| 3 | spot | Approximate spot price at the reading, US dollars per ounce |
| 4 | updated_utc | Time of the reading, Coordinated Universal Time |
| 5 | valid_until_utc | The reading expires 70 minutes after it was made; reject it after this time |
| 6 | support | Nearest support below price |
| 7 | resistance | Nearest resistance above price |
| 8 | invalidation | Level where the hourly outlook stops working |
| 9 | event_risk | 1 when a scheduled major release is close, otherwise 0 |
| 10 | version | Format version; new fields are only ever added at the end |
Step 1: allow the web address in MetaTrader 4
- In MetaTrader 4 open Tools, then Options, then the Expert Advisors tab.
- Tick Allow WebRequest for listed URL.
- Double-click the empty row (or the green plus sign) and add
https://povertysux.co, the address without/signal.txt. - 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
- WebRequest works only in Expert Advisors and scripts, not in indicators, and it does not run in the Strategy Tester, so this feed cannot be back-tested directly. Use signal-history.json for research.
- WebRequest pauses the Expert Advisor while it waits, so call it from a timer with a short timeout, never on every tick.
- Prices are derived from futures data delayed about 10 minutes and converted to approximate spot. Your broker's price can differ by a few dollars.
- Always reject a reading after
valid_until_utc; the feed is not updated at weekends or if the hourly job fails. - Trading automatically on this signal is untested. Test on a demo account first. Not financial advice.
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"
}