WARRIOR EA - API KEYS (BACKUP COPY) =================================== Kept here so the keys are never lost with a wiped data folder. Both are FREE, personal, and rate-limited per key. FRED (Federal Reserve Bank of St. Louis) ---------------------------------------- key: 9640c07ff6574c1c23a17393b735fd36 host: https://api.stlouisfed.org register: https://fredaccount.stlouisfed.org/apikeys feeds: VIXCLS (vix, vix_chg5), DTWEXBGS (usd_chg5) limit: 120 requests/minute (the EA uses ~2 per hour) EIA (U.S. Energy Information Administration) -------------------------------------------- key: oeSZu7EaZxG5Icjm6q78yUIXaH2EKGhIwVsdTj76 host: https://api.eia.gov register: https://www.eia.gov/opendata/register.php feeds: Weekly Petroleum Status Report - crude stocks ex-SPR (WCESTUS1), field production (WCRFPUS2), refinery utilization (WPULEUS3) limit: 5,000 rows/request (the EA uses 1 request/week) CFTC (Commitments of Traders) ----------------------------- key: NONE REQUIRED - the Socrata endpoint is open host: https://publicreporting.cftc.gov dataset: gpe5-46if (Traders in Financial Futures, futures only) CBOE (option chains for the GEX recorder) ------------------------------------------ key: NONE REQUIRED - open CDN, and it does not gate on User-Agent host: https://cdn.cboe.com path: /api/global/delayed_quotes/options/{TICKER}.json (_SPX, GLD, USO, ...) feeds: the daily gex_{SYMBOL}.csv recorder (not a model feature yet) FLASHALPHA (options analytics - RESEARCH ONLY, NOT USED BY THE EA) ------------------------------------------------------------------- key: s0AmHthSZi3nenuwvARTz3aKd7DUAnMpOee617jh auth: HTTP HEADER, not a query parameter: X-Api-Key: hosts: https://lab.flashalpha.com (live) https://historical.flashalpha.com (point-in-time replay, 2018-04+) register: https://flashalpha.com plan: FREE - 5 requests per DAY, 15-minute delayed data !! THE FREE QUOTA IS 5 REQUESTS A DAY. DO NOT SPEND THEM CASUALLY. !! Registered 2026-08-16. NO CALLS HAVE BEEN MADE YET - the whole quota is reserved for one specific question (below). This key is deliberately NOT an EA input: the EA must never depend on a paid, rate-limited vendor in its live path. It is for research-side backfill only. Example call shape: curl -H "X-Api-Key: " \ "https://lab.flashalpha.com/v1/exposure/gex/AAPL?expiration=2026-06-19" PRICING CHECKED 2026-08-16 - THE BACKFILL PLAN IS DEAD: Free $0 5 req/day 15 min delay Basic $79/mo 250 req/day 15 sec Growth $299/mo 2,500 req/day 15 sec Alpha $1,499/mo unlimited ~1 sec HISTORICAL API ACCESS IS ALPHA-TIER ONLY ($1,499/month). Basic and Growth are LIVE data only. Since the only thing we wanted from this vendor was the ARCHIVE, no affordable tier helps: Basic would cost $79/month to make a once-a-day snapshot 15 seconds fresh instead of 15 minutes, which is worth exactly nothing for a daily EOD recording. DO NOT SUBSCRIBE. Cancellation is anytime, if that ever changes. TESTED 2026-08-16 - 3 of 5 daily requests spent. FINDINGS (all 403s and the one 200 were informative, so nothing was wasted): 1. GET /v1/exposure/gex/SPY -> 403 tier_restricted: "ETF data (e.g. SPY, QQQ, IWM) requires the Basic plan or higher." Free tier is SINGLE STOCKS ONLY. 2. GET /v1/exposure/gex/AAPL (no expiration filter) -> 403 tier_restricted: "Full-chain GEX (all expirations) requires the Growth plan or higher." Free AND Basic must query ONE EXPIRATION PER REQUEST. 3. GET /v1/exposure/gex/AAPL?expiration=2026-09-18 -> 200. Schema: symbol, underlying_price, as_of, gamma_flip, net_gex, net_gex_label, strikes[] with per-strike call_gex/put_gex/net_gex/ call_oi/put_oi/volumes/oi_change. BUT THE PAYLOAD WAS NEARLY EMPTY: only 13 of 93 strikes carried any open interest, total call OI 4,296 against our 373,253 from CBOE for the same expiry, and total put OI was ZERO. Every near-the-money strike (290-320) showed call_oi 0 where CBOE shows 9,000-35,000 contracts. So NO VALIDATION WAS POSSIBLE - not because our math disagreed, but because there was nothing to compare against. Cannot tell from outside whether that is free-tier degradation or a consequence of their flow-signed methodology (they sign strikes from classified tape, so strikes with no classified trades may simply be absent). CONCLUSION: the free CBOE CDN is STRICTLY BETTER than FlashAlpha Basic for this project - complete chains, every expiry, every strike, gamma and open interest populated, unlimited requests, $0. Basic ($79/mo) would buy ETF access that we already have for free, still one expiry per request, and still no history. Nothing here is worth paying for at any tier below Alpha ($1,499/mo), and Alpha is not worth it either (see DESIGN.md). WHERE THESE KEYS ARE USED ------------------------- 1. EA inputs (the live source of truth): FredApiKey, EiaApiKey - Variables\Inputs.mqh, defaults = the keys above They travel WITH the EA, so wiping Common\Files\Warrior_EA cannot break the downloads. This is deliberate: on 2026-08-16 a folder wipe took the old keys.txt with it and the FRED leg silently stopped, leaving models training with zero alt-data features. 2. Fallback file (only read when an input is left BLANK): %APPDATA%\MetaQuotes\Terminal\Common\Files\Warrior_EA\AltData\keys.txt Format, one per line: fred=9640c07ff6574c1c23a17393b735fd36 eia=oeSZu7EaZxG5Icjm6q78yUIXaH2EKGhIwVsdTj76 3. Research side (Python, never reads the EA inputs): ..\Market Data\altdata\keys.json (outside the repo, gitignored) {"fred": "...", "eia": "...", "flashalpha": "..."} Read via research/altdata/common.py api_key(name), which checks the environment variable ALTDATA__KEY first. IF YOU EVER SELL OR SHARE THIS EA --------------------------------- Blank the FredApiKey / EiaApiKey input defaults before building the distributable, and delete this file from the shipped copy. A shared key is rate-limited against YOUR account and can be revoked by the provider. To rotate a key: register a new one at the URL above, update the input default in Variables\Inputs.mqh, this file, and Market Data\altdata\keys.json.