feat(altdata): EIA wired, 24-instrument symbol catalog, mapping dialog for unknown symbols
EIA (user directive: "the NN might find patterns in it for both oil and regular
symbols"). Weekly Petroleum Status Report via the v2 API - crude stocks ex-SPR,
field production, refinery utilization - three features (1y percentile, 4w
change, utilization) on EVERY catalog symbol, not just oil. EIA screened NULL on
WTI's short 7y sample, so these ship as EXPLORATORY inputs: the deploy gate, not
the screen, decides whether a model trained on them trades. Publication stamp
observed+6d mirrors research/altdata/eia.py.
Symbol handling was hardcoded to three if-blocks; it is now a catalog of 24
instruments x alias lists covering The5ers/FTMO/AvaTrade/Dukascopy/OANDA/IC
Markets naming, with prefix matching for the broker suffix zoo (US500.cash,
XAUUSDm, EURUSD.r). Adding an instrument is one AddSpec row. COT caches are
named by CANONICAL so two brokers' names for one contract share a download.
Unrecognised symbol -> a chart dialog (Panel\AltDataMapDialog.mqh, CAppDialog +
dropdown) asks which instrument it is; the answer persists in symbol_map.cfg and
"No alternative data" is a recorded choice, not a nag. Non-blocking by design:
an unmapped symbol contributes 0 features and must never hold up a chart.
Also: UrlEncodePart now escapes '%' - SoQL like-predicates use it as the
wildcard and an unescaped one corrupts the query; docs/ gains the whitelist
URLs, an API-key backup, and the catalog reference.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 16:18:29 -04:00
|
|
|
WARRIOR EA - ALTERNATIVE DATA SYMBOL CATALOG
|
|
|
|
|
============================================
|
|
|
|
|
|
|
|
|
|
The EA maps the chart's symbol to an alt-data instrument automatically. Broker
|
|
|
|
|
tickers differ wildly (Dukascopy "USA500IDX", OANDA "SPX500", FTMO "US500.cash"),
|
|
|
|
|
so the catalog lists the common names for each instrument, and any leftover
|
|
|
|
|
suffix is absorbed by prefix matching - US500, US500.cash, US500.r, US500pro and
|
|
|
|
|
US500m all resolve to SP500 from the single alias "US500".
|
|
|
|
|
|
|
|
|
|
Source of truth: System\AltDataFetch.mqh -> BuildCatalog().
|
|
|
|
|
|
|
|
|
|
IF YOUR SYMBOL IS NOT RECOGNISED
|
|
|
|
|
--------------------------------
|
|
|
|
|
A dialog appears on the chart asking which instrument it is, with a dropdown of
|
|
|
|
|
everything below. Pick one and it is saved forever in
|
|
|
|
|
|
|
|
|
|
%APPDATA%\MetaQuotes\Terminal\Common\Files\Warrior_EA\AltData\symbol_map.cfg
|
|
|
|
|
|
|
|
|
|
Choosing "No alternative data" records that too, so it never asks again. The EA
|
|
|
|
|
trains and trades normally either way - an unmapped symbol simply contributes
|
|
|
|
|
zero alt-data features.
|
|
|
|
|
|
|
|
|
|
To map by hand (or to change an answer), edit that file - one line each:
|
|
|
|
|
|
|
|
|
|
USA500IDX=SP500
|
|
|
|
|
MYWEIRDTICKER=NONE
|
|
|
|
|
|
|
|
|
|
Delete a line to be asked again at the next attach.
|
|
|
|
|
|
feat(altdata): wire everything the sources serve - screens become priors, not gates
Owner decision (stated twice): available data gets wired; the networks judge
usefulness; the deploy gate remains the arbiter of what trades. Implemented:
MACRO block (6) on every symbol: 10y yield 20d change, curve slope, 5y
breakeven 20d change, Fed-ECB policy gap, CPI yoy, unemployment 12m change.
Screened null vs forward range on all four research symbols - recorded as
the honest prior in the catalog comment, wired regardless.
RISK block (3) extended to every symbol (FX majors, metals, energy, BTC all
now carry vix/vix_chg5/usd_chg5).
IVOL pair extended with the level alongside the change.
Vintage integrity kept where it is free: CPI is fetched as CPIAUCNS (NSA,
essentially never revised) so the plain-FRED backfill stays first-print-clean;
yields/curve/breakevens/policy rates are unrevised by nature. UNRATE is the
one exception (seasonal refits, ~0.1-0.2pp) - the EA cannot run the ALFRED
protocol, accepted and documented at the declaration site.
UpdateFred gains a staleDays parameter so the monthly series do not fire a
pointless fetch attempt every hour for three weeks after each print.
FeatureValue now takes the day and does its own as-of lookups - adding a
source no longer widens a parameter list. Feature counts: 12-15 per symbol;
symbol feature-order changed, safe only because no models exist yet.
export.py mirrors the new catalog for the five research symbols (13-15
features), smoke-tested: all five CSVs written, 6,072 daily rows each.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 17:29:22 -04:00
|
|
|
POLICY (owner decision 2026-08-16): every feature the fetched sources can serve
|
|
|
|
|
is wired on every symbol. The research screens inform priors but do not gate
|
|
|
|
|
the input list - the networks decide what is useful, and the deploy gate
|
|
|
|
|
decides whether anything trained on these is ever allowed to trade.
|
|
|
|
|
|
|
|
|
|
FEATURE BLOCKS
|
|
|
|
|
--------------
|
|
|
|
|
RISK (3) vix, vix_chg5 CBOE VIX level + 5-day change (FRED VIXCLS)
|
|
|
|
|
usd_chg5 broad dollar index 5-day change (FRED DTWEXBGS)
|
|
|
|
|
IVOL (2) ivol, ivol_chg5 the instrument's OWN implied-vol index, level +
|
|
|
|
|
5-day change (GVZ gold, OVX oil, VXN/VXD/RVX the
|
|
|
|
|
US indices; FX has none - EVZ was discontinued)
|
|
|
|
|
COT (3) cot_idx_1y/3y leveraged-fund net position percentile, 1y and 3y
|
|
|
|
|
cot_chg_4w its 4-week change (SP500 carries cot_spec_net)
|
|
|
|
|
EIA (3) eia_stk_idx1y US crude stocks ex-SPR, 1-year percentile
|
|
|
|
|
eia_stk_chg4 US crude stocks, 4-week change
|
|
|
|
|
eia_util US refinery utilization
|
|
|
|
|
MACRO (6) mac_y10 10y treasury yield, 20-day change
|
|
|
|
|
mac_curve 10y-2y curve slope
|
|
|
|
|
mac_bei 5y inflation breakeven, 20-day change
|
|
|
|
|
mac_gap Fed minus ECB policy rate
|
|
|
|
|
mac_cpi US CPI year-over-year (unrevised NSA index)
|
|
|
|
|
mac_unemp US unemployment rate, 12-month change
|
|
|
|
|
|
feat(altdata): EIA wired, 24-instrument symbol catalog, mapping dialog for unknown symbols
EIA (user directive: "the NN might find patterns in it for both oil and regular
symbols"). Weekly Petroleum Status Report via the v2 API - crude stocks ex-SPR,
field production, refinery utilization - three features (1y percentile, 4w
change, utilization) on EVERY catalog symbol, not just oil. EIA screened NULL on
WTI's short 7y sample, so these ship as EXPLORATORY inputs: the deploy gate, not
the screen, decides whether a model trained on them trades. Publication stamp
observed+6d mirrors research/altdata/eia.py.
Symbol handling was hardcoded to three if-blocks; it is now a catalog of 24
instruments x alias lists covering The5ers/FTMO/AvaTrade/Dukascopy/OANDA/IC
Markets naming, with prefix matching for the broker suffix zoo (US500.cash,
XAUUSDm, EURUSD.r). Adding an instrument is one AddSpec row. COT caches are
named by CANONICAL so two brokers' names for one contract share a download.
Unrecognised symbol -> a chart dialog (Panel\AltDataMapDialog.mqh, CAppDialog +
dropdown) asks which instrument it is; the answer persists in symbol_map.cfg and
"No alternative data" is a recorded choice, not a nag. Non-blocking by design:
an unmapped symbol contributes 0 features and must never hold up a chart.
Also: UrlEncodePart now escapes '%' - SoQL like-predicates use it as the
wildcard and an unescaped one corrupts the query; docs/ gains the whitelist
URLs, an API-key backup, and the catalog reference.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 16:18:29 -04:00
|
|
|
CATALOG
|
|
|
|
|
-------
|
feat(altdata): wire everything the sources serve - screens become priors, not gates
Owner decision (stated twice): available data gets wired; the networks judge
usefulness; the deploy gate remains the arbiter of what trades. Implemented:
MACRO block (6) on every symbol: 10y yield 20d change, curve slope, 5y
breakeven 20d change, Fed-ECB policy gap, CPI yoy, unemployment 12m change.
Screened null vs forward range on all four research symbols - recorded as
the honest prior in the catalog comment, wired regardless.
RISK block (3) extended to every symbol (FX majors, metals, energy, BTC all
now carry vix/vix_chg5/usd_chg5).
IVOL pair extended with the level alongside the change.
Vintage integrity kept where it is free: CPI is fetched as CPIAUCNS (NSA,
essentially never revised) so the plain-FRED backfill stays first-print-clean;
yields/curve/breakevens/policy rates are unrevised by nature. UNRATE is the
one exception (seasonal refits, ~0.1-0.2pp) - the EA cannot run the ALFRED
protocol, accepted and documented at the declaration site.
UpdateFred gains a staleDays parameter so the monthly series do not fire a
pointless fetch attempt every hour for three weeks after each print.
FeatureValue now takes the day and does its own as-of lookups - adding a
source no longer widens a parameter list. Feature counts: 12-15 per symbol;
symbol feature-order changed, safe only because no models exist yet.
export.py mirrors the new catalog for the five research symbols (13-15
features), smoke-tested: all five CSVs written, 6,072 daily rows each.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 17:29:22 -04:00
|
|
|
CANONICAL FEATURES BLOCKS RECOGNISED NAMES (any broker suffix)
|
|
|
|
|
--------- -------- ---------------------- ------------------------------------
|
|
|
|
|
SP500 13 RISK+spec_net+EIA+MAC SP500 SPX500 US500 USA500 USA500IDX
|
|
|
|
|
US_500 SPXUSD S&P500 SP_500 SPX
|
|
|
|
|
USA500IDXUSD US500Cash
|
|
|
|
|
NAS100 14 RISK+IVOL+EIA+MAC NAS100 NASDAQ US100 USA100 USATEC
|
|
|
|
|
USTEC NDX100 NQ100 TECH100 USA100IDX
|
|
|
|
|
US_100 NDX USATECHIDX
|
|
|
|
|
US30 14 RISK+IVOL+EIA+MAC US30 DJ30 DOW30 USA30 WALLSTREET
|
|
|
|
|
WS30 DJIUSD USA30IDX US_30 DOWJONES DJI
|
|
|
|
|
US2000 14 RISK+IVOL+EIA+MAC US2000 RUSSELL2000 RUT USA2000 RTY US_2000
|
|
|
|
|
DE40 12 RISK+EIA+MAC DE40 GER40 DAX40 DAX GER30 DE30
|
|
|
|
|
GERMANY40 DEU40 GRXEUR DE_40 GER_40
|
|
|
|
|
UK100 12 RISK+EIA+MAC UK100 FTSE100 FTSE GBR100 UKX GB100
|
|
|
|
|
UK_100 BRXGBP
|
|
|
|
|
JP225 12 RISK+EIA+MAC JP225 NIKKEI NI225 JPN225 J225 JPXJPY JP_225
|
|
|
|
|
EU50 12 RISK+EIA+MAC EU50 STOXX50 ESTX50 EUSTX50 SX5E EUR50 E50EUR
|
|
|
|
|
FR40 12 RISK+EIA+MAC FR40 CAC40 FRA40 CAC FRXEUR
|
|
|
|
|
AU200 12 RISK+EIA+MAC AU200 ASX200 AUS200 SPI200 AU_200 AUXAUD
|
|
|
|
|
HK50 12 RISK+EIA+MAC HK50 HSI HKG33 HK33 HANGSENG HKXHKD
|
|
|
|
|
EURUSD 15 COT+RISK+EIA+MAC EURUSD EUR_USD
|
|
|
|
|
USDJPY 15 COT+RISK+EIA+MAC USDJPY USD_JPY
|
|
|
|
|
GBPUSD 15 COT+RISK+EIA+MAC GBPUSD GBP_USD
|
|
|
|
|
USDCAD 15 COT+RISK+EIA+MAC USDCAD USD_CAD
|
|
|
|
|
AUDUSD 15 COT+RISK+EIA+MAC AUDUSD AUD_USD
|
|
|
|
|
NZDUSD 15 COT+RISK+EIA+MAC NZDUSD NZD_USD
|
|
|
|
|
USDCHF 15 COT+RISK+EIA+MAC USDCHF USD_CHF
|
|
|
|
|
XAUUSD 14 RISK+IVOL(GVZ)+EIA+MAC XAUUSD GOLD XAU_USD GOLDUSD
|
|
|
|
|
XAGUSD 12 RISK+EIA+MAC XAGUSD SILVER XAG_USD SILVERUSD
|
|
|
|
|
XTIUSD 14 RISK+IVOL(OVX)+EIA+MAC XTIUSD USOIL WTI CRUDE USCRUDE OIL
|
|
|
|
|
WTICOUSD OILUSD LIGHTCMDUSD CRUDEOIL
|
|
|
|
|
XBRUSD 14 RISK+IVOL(OVX)+EIA+MAC XBRUSD UKOIL BRENT UKOUSD BCOUSD
|
|
|
|
|
BRENTCMDUSD
|
|
|
|
|
NATGAS 12 RISK+EIA+MAC NATGAS NGAS XNGUSD NATURALGAS
|
|
|
|
|
BTCUSD 15 COT+RISK+EIA+MAC BTCUSD BITCOIN XBTUSD BTC_USD
|
feat(altdata): EIA wired, 24-instrument symbol catalog, mapping dialog for unknown symbols
EIA (user directive: "the NN might find patterns in it for both oil and regular
symbols"). Weekly Petroleum Status Report via the v2 API - crude stocks ex-SPR,
field production, refinery utilization - three features (1y percentile, 4w
change, utilization) on EVERY catalog symbol, not just oil. EIA screened NULL on
WTI's short 7y sample, so these ship as EXPLORATORY inputs: the deploy gate, not
the screen, decides whether a model trained on them trades. Publication stamp
observed+6d mirrors research/altdata/eia.py.
Symbol handling was hardcoded to three if-blocks; it is now a catalog of 24
instruments x alias lists covering The5ers/FTMO/AvaTrade/Dukascopy/OANDA/IC
Markets naming, with prefix matching for the broker suffix zoo (US500.cash,
XAUUSDm, EURUSD.r). Adding an instrument is one AddSpec row. COT caches are
named by CANONICAL so two brokers' names for one contract share a download.
Unrecognised symbol -> a chart dialog (Panel\AltDataMapDialog.mqh, CAppDialog +
dropdown) asks which instrument it is; the answer persists in symbol_map.cfg and
"No alternative data" is a recorded choice, not a nag. Non-blocking by design:
an unmapped symbol contributes 0 features and must never hold up a chart.
Also: UrlEncodePart now escapes '%' - SoQL like-predicates use it as the
wildcard and an unescaped one corrupts the query; docs/ gains the whitelist
URLs, an API-key backup, and the catalog reference.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 16:18:29 -04:00
|
|
|
|
feat(altdata): wire everything the sources serve - screens become priors, not gates
Owner decision (stated twice): available data gets wired; the networks judge
usefulness; the deploy gate remains the arbiter of what trades. Implemented:
MACRO block (6) on every symbol: 10y yield 20d change, curve slope, 5y
breakeven 20d change, Fed-ECB policy gap, CPI yoy, unemployment 12m change.
Screened null vs forward range on all four research symbols - recorded as
the honest prior in the catalog comment, wired regardless.
RISK block (3) extended to every symbol (FX majors, metals, energy, BTC all
now carry vix/vix_chg5/usd_chg5).
IVOL pair extended with the level alongside the change.
Vintage integrity kept where it is free: CPI is fetched as CPIAUCNS (NSA,
essentially never revised) so the plain-FRED backfill stays first-print-clean;
yields/curve/breakevens/policy rates are unrevised by nature. UNRATE is the
one exception (seasonal refits, ~0.1-0.2pp) - the EA cannot run the ALFRED
protocol, accepted and documented at the declaration site.
UpdateFred gains a staleDays parameter so the monthly series do not fire a
pointless fetch attempt every hour for three weeks after each print.
FeatureValue now takes the day and does its own as-of lookups - adding a
source no longer widens a parameter list. Feature counts: 12-15 per symbol;
symbol feature-order changed, safe only because no models exist yet.
export.py mirrors the new catalog for the five research symbols (13-15
features), smoke-tested: all five CSVs written, 6,072 daily rows each.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 17:29:22 -04:00
|
|
|
WHAT THE SCREENS FOUND (priors, not gates)
|
|
|
|
|
------------------------------------------
|
|
|
|
|
Screened CLEAN (family-wise bar + incremental test, vs forward RANGE):
|
feat(altdata): EIA wired, 24-instrument symbol catalog, mapping dialog for unknown symbols
EIA (user directive: "the NN might find patterns in it for both oil and regular
symbols"). Weekly Petroleum Status Report via the v2 API - crude stocks ex-SPR,
field production, refinery utilization - three features (1y percentile, 4w
change, utilization) on EVERY catalog symbol, not just oil. EIA screened NULL on
WTI's short 7y sample, so these ship as EXPLORATORY inputs: the deploy gate, not
the screen, decides whether a model trained on them trades. Publication stamp
observed+6d mirrors research/altdata/eia.py.
Symbol handling was hardcoded to three if-blocks; it is now a catalog of 24
instruments x alias lists covering The5ers/FTMO/AvaTrade/Dukascopy/OANDA/IC
Markets naming, with prefix matching for the broker suffix zoo (US500.cash,
XAUUSDm, EURUSD.r). Adding an instrument is one AddSpec row. COT caches are
named by CANONICAL so two brokers' names for one contract share a download.
Unrecognised symbol -> a chart dialog (Panel\AltDataMapDialog.mqh, CAppDialog +
dropdown) asks which instrument it is; the answer persists in symbol_map.cfg and
"No alternative data" is a recorded choice, not a nag. Non-blocking by design:
an unmapped symbol contributes 0 features and must never hold up a chart.
Also: UrlEncodePart now escapes '%' - SoQL like-predicates use it as the
wildcard and an unescaped one corrupts the query; docs/ gains the whitelist
URLs, an API-key backup, and the catalog reference.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 16:18:29 -04:00
|
|
|
SP500 : vix_chg5, vix, usd_chg5, cot_spec_net
|
feat(altdata): wire everything the sources serve - screens become priors, not gates
Owner decision (stated twice): available data gets wired; the networks judge
usefulness; the deploy gate remains the arbiter of what trades. Implemented:
MACRO block (6) on every symbol: 10y yield 20d change, curve slope, 5y
breakeven 20d change, Fed-ECB policy gap, CPI yoy, unemployment 12m change.
Screened null vs forward range on all four research symbols - recorded as
the honest prior in the catalog comment, wired regardless.
RISK block (3) extended to every symbol (FX majors, metals, energy, BTC all
now carry vix/vix_chg5/usd_chg5).
IVOL pair extended with the level alongside the change.
Vintage integrity kept where it is free: CPI is fetched as CPIAUCNS (NSA,
essentially never revised) so the plain-FRED backfill stays first-print-clean;
yields/curve/breakevens/policy rates are unrevised by nature. UNRATE is the
one exception (seasonal refits, ~0.1-0.2pp) - the EA cannot run the ALFRED
protocol, accepted and documented at the declaration site.
UpdateFred gains a staleDays parameter so the monthly series do not fire a
pointless fetch attempt every hour for three weeks after each print.
FeatureValue now takes the day and does its own as-of lookups - adding a
source no longer widens a parameter list. Feature counts: 12-15 per symbol;
symbol feature-order changed, safe only because no models exist yet.
export.py mirrors the new catalog for the five research symbols (13-15
features), smoke-tested: all five CSVs written, 6,072 daily rows each.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 17:29:22 -04:00
|
|
|
USDJPY : COT family; vix_chg5
|
|
|
|
|
EURUSD : vix_chg5
|
|
|
|
|
XAUUSD : vix_chg5, and ivol_chg5 (GVZ) at 4.6x the strength of vix_chg5 -
|
|
|
|
|
the second-strongest feature of the whole campaign
|
|
|
|
|
Screened NULL (wired anyway by policy): the MACRO block on all four research
|
|
|
|
|
symbols; EIA on WTI. Everything else is untested on its instrument.
|
feat(altdata): EIA wired, 24-instrument symbol catalog, mapping dialog for unknown symbols
EIA (user directive: "the NN might find patterns in it for both oil and regular
symbols"). Weekly Petroleum Status Report via the v2 API - crude stocks ex-SPR,
field production, refinery utilization - three features (1y percentile, 4w
change, utilization) on EVERY catalog symbol, not just oil. EIA screened NULL on
WTI's short 7y sample, so these ship as EXPLORATORY inputs: the deploy gate, not
the screen, decides whether a model trained on them trades. Publication stamp
observed+6d mirrors research/altdata/eia.py.
Symbol handling was hardcoded to three if-blocks; it is now a catalog of 24
instruments x alias lists covering The5ers/FTMO/AvaTrade/Dukascopy/OANDA/IC
Markets naming, with prefix matching for the broker suffix zoo (US500.cash,
XAUUSDm, EURUSD.r). Adding an instrument is one AddSpec row. COT caches are
named by CANONICAL so two brokers' names for one contract share a download.
Unrecognised symbol -> a chart dialog (Panel\AltDataMapDialog.mqh, CAppDialog +
dropdown) asks which instrument it is; the answer persists in symbol_map.cfg and
"No alternative data" is a recorded choice, not a nag. Non-blocking by design:
an unmapped symbol contributes 0 features and must never hold up a chart.
Also: UrlEncodePart now escapes '%' - SoQL like-predicates use it as the
wildcard and an unescaped one corrupts the query; docs/ gains the whitelist
URLs, an API-key backup, and the catalog reference.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 16:18:29 -04:00
|
|
|
|
feat(altdata): wire everything the sources serve - screens become priors, not gates
Owner decision (stated twice): available data gets wired; the networks judge
usefulness; the deploy gate remains the arbiter of what trades. Implemented:
MACRO block (6) on every symbol: 10y yield 20d change, curve slope, 5y
breakeven 20d change, Fed-ECB policy gap, CPI yoy, unemployment 12m change.
Screened null vs forward range on all four research symbols - recorded as
the honest prior in the catalog comment, wired regardless.
RISK block (3) extended to every symbol (FX majors, metals, energy, BTC all
now carry vix/vix_chg5/usd_chg5).
IVOL pair extended with the level alongside the change.
Vintage integrity kept where it is free: CPI is fetched as CPIAUCNS (NSA,
essentially never revised) so the plain-FRED backfill stays first-print-clean;
yields/curve/breakevens/policy rates are unrevised by nature. UNRATE is the
one exception (seasonal refits, ~0.1-0.2pp) - the EA cannot run the ALFRED
protocol, accepted and documented at the declaration site.
UpdateFred gains a staleDays parameter so the monthly series do not fire a
pointless fetch attempt every hour for three weeks after each print.
FeatureValue now takes the day and does its own as-of lookups - adding a
source no longer widens a parameter list. Feature counts: 12-15 per symbol;
symbol feature-order changed, safe only because no models exist yet.
export.py mirrors the new catalog for the five research symbols (13-15
features), smoke-tested: all five CSVs written, 6,072 daily rows each.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 17:29:22 -04:00
|
|
|
NOT WIRED
|
|
|
|
|
---------
|
|
|
|
|
Gold/silver/copper COT positioning (CFTC disaggregated report - different
|
|
|
|
|
dataset id and columns), and silver IV (VXSLV discontinued). GEX records daily
|
|
|
|
|
to gex_{SYMBOL}.csv but feeds nothing until ~a year of history exists.
|
feat(altdata): EIA wired, 24-instrument symbol catalog, mapping dialog for unknown symbols
EIA (user directive: "the NN might find patterns in it for both oil and regular
symbols"). Weekly Petroleum Status Report via the v2 API - crude stocks ex-SPR,
field production, refinery utilization - three features (1y percentile, 4w
change, utilization) on EVERY catalog symbol, not just oil. EIA screened NULL on
WTI's short 7y sample, so these ship as EXPLORATORY inputs: the deploy gate, not
the screen, decides whether a model trained on them trades. Publication stamp
observed+6d mirrors research/altdata/eia.py.
Symbol handling was hardcoded to three if-blocks; it is now a catalog of 24
instruments x alias lists covering The5ers/FTMO/AvaTrade/Dukascopy/OANDA/IC
Markets naming, with prefix matching for the broker suffix zoo (US500.cash,
XAUUSDm, EURUSD.r). Adding an instrument is one AddSpec row. COT caches are
named by CANONICAL so two brokers' names for one contract share a download.
Unrecognised symbol -> a chart dialog (Panel\AltDataMapDialog.mqh, CAppDialog +
dropdown) asks which instrument it is; the answer persists in symbol_map.cfg and
"No alternative data" is a recorded choice, not a nag. Non-blocking by design:
an unmapped symbol contributes 0 features and must never hold up a chart.
Also: UrlEncodePart now escapes '%' - SoQL like-predicates use it as the
wildcard and an unescaped one corrupts the query; docs/ gains the whitelist
URLs, an API-key backup, and the catalog reference.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 16:18:29 -04:00
|
|
|
|
|
|
|
|
NOT WIRED
|
|
|
|
|
---------
|
|
|
|
|
Gold and WTI COT positioning exist, but in the CFTC's DISAGGREGATED report -
|
|
|
|
|
a different dataset id with different column names than the financial-futures
|
|
|
|
|
report this EA queries. Metals and energy therefore carry no COT columns.
|