Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/deskiziarecords/QUIMERIA-HYPERION/llms.txt

Use this file to discover all available pages before exploring further.

Every data source in QUIMERIA-HYPERION is normalized by backend/data_connectors.py into a single canonical OHLCV format before entering the SMK pipeline. This means you can switch between a CSV file exported from MetaTrader and a live Bitget REST feed without changing any pipeline configuration.

Normalized OHLCV format

All loaders return a JSON array of bar objects. Timestamps are Unix seconds (UTC). Volume falls back to 100 if the source does not provide it.
[
  {
    "time":   1705276800,
    "open":   1.10512,
    "high":   1.10601,
    "low":    1.10488,
    "close":  1.10557,
    "volume": 1245.0
  }
]
The pipeline calls _normalize_bars() on every dataset and deduplicates bars by timestamp before loading. Bars are always sorted ascending by time.

Data sources overview

SourceFormatEndpoint
MT4/MT5 CSV exportDot-separated date with optional TICKVOL/SPREAD columnsPOST /api/load/csv
TradingView ISO exportISO 8601 timestamp (2024-01-15T00:00:00+00:00)POST /api/load/csv
TradingView US exportUS date format (01/15/2024 00:00)POST /api/load/csv
Dukascopy UTC formatDD.MM.YYYY HH:MM:SS.mmm UTCPOST /api/load/csv
Bitget REST APISpot candle endpoint, auto-pagedPOST /api/load/bitget
OANDA REST APIGranularity-based candle fetchPOST /api/load/oanda
Built-in sampleSynthetic 500-bar AMD cyclePOST /api/load/sample

CSV uploads

The /api/load/csv endpoint accepts any of the four supported CSV dialects. The format detector reads the header line and first data row to pick the correct parser automatically.

MT4 / MT5 format

MT4 exports use a dot-separated date (2024.01.15) and separate DATE and TIME columns. MT5 adds TICKVOL, VOL, and SPREAD columns — all are accepted and the volume field is mapped to tickvol or vol whichever is present.
<DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
2024.01.15,00:00,1.10512,1.10601,1.10488,1.10557,1245
DATE,TIME,OPEN,HIGH,LOW,CLOSE,TICKVOL,VOL,SPREAD
2024.01.15,00:00:00,1.10512,1.10601,1.10488,1.10557,1245,0,2

TradingView ISO format

TradingView’s ISO export uses a single time column with a full ISO 8601 timestamp including timezone offset.
time,open,high,low,close,volume
2024-01-15T00:00:00+00:00,1.10512,1.10601,1.10488,1.10557,1245

TradingView US format

TradingView’s US date export uses DATE and TIME as separate columns with MM/DD/YYYY date notation.
DATE,TIME,OPEN,HIGH,LOW,CLOSE,VOLUME
01/15/2024,00:00,1.10512,1.10601,1.10488,1.10557,1245

Dukascopy UTC format

Dukascopy exports combine date, time, and milliseconds into a single UTC column.
UTC,OPEN,HIGH,LOW,CLOSE,VOLUME
19.03.2026 12:00:00.000 UTC,1.10512,1.10601,1.10488,1.10557,1245

Uploading a CSV file

curl -X POST http://localhost:8000/api/load/csv \
  -F "file=@/path/to/EURUSD_H1.csv"

Column name aliases

The normalizer accepts multiple column name variants for each OHLCV field:
FieldAccepted column names
timetime, timestamp, UTC, datetime, date, Datetime, Date
openopen, Open, o, OPEN
highhigh, High, h, HIGH
lowlow, Low, l, LOW
closeclose, Close, c, CLOSE
volumevolume, Volume, tickvol, TickVol, vol, VOL, v

Bitget REST API

The /api/load/bitget endpoint fetches historical candles from the Bitget v2 spot market API. The granularity maps to Bitget’s internal interval strings automatically.
IntervalBitget string
1m1min
3m3min
5m5min
15m15min
1h1H
curl -X POST http://localhost:8000/api/load/bitget \
  -H "Content-Type: application/json" \
  -d '{
    "symbol": "EURUSDT",
    "granularity": "1h",
    "limit": 500
  }'
Public Bitget candle endpoints do not require an API key. Set BITGET_API_KEY in your .env file if you need access to private endpoints or higher rate limits.

OANDA REST API

The /api/load/oanda endpoint fetches candles from the OANDA v20 REST API using your account credentials. The granularity parameter maps directly to OANDA’s granularity strings (e.g., H1, M15, D).
OANDA requires a live or practice account API token. Never commit your token to version control — store it as OANDA_API_KEY in your .env file.
curl -X POST http://localhost:8000/api/load/oanda \
  -H "Content-Type: application/json" \
  -d '{
    "instrument": "EUR_USD",
    "granularity": "H1",
    "count": 500,
    "api_key": "YOUR_OANDA_TOKEN",
    "account_type": "practice"
  }'

Built-in sample data

The /api/load/sample endpoint generates a synthetic 500-bar AMD (Accumulate → Manipulate → Distribute → Retrace) price cycle. It requires no credentials and is useful for verifying your pipeline configuration before connecting a live feed.
curl -X POST http://localhost:8000/api/load/sample
Use the sample data source when first deploying QUIMERIA-HYPERION to confirm that all 18 SMK detector modules load correctly and the dashboard renders the sensor panel before you connect real market data.

Verifying a loaded dataset

After any successful load, call GET /api/status to confirm the bar count, symbol, and pipeline state:
curl http://localhost:8000/api/status
{
  "status": "ready",
  "bars_loaded": 500,
  "symbol": "EURUSD",
  "pipeline": "initialized",
  "modules_ok": 18,
  "import_errors": 0
}

Build docs developers (and LLMs) love