BAR6-Format
Das binäre Datenformat von partiqon für effiziente, transparente Speicherung und schnellen Zugriff auf Marktdaten. Designed für Geschwindigkeit, kompakte Speicherung und keinen Vendor-Lock-in.
Überblick
BAR6 ist ein offenes, dokumentiertes Binärformat für historische Marktdaten. Es unterstützt sowohl Bar-Daten (OHLCV) als auch Rohtick-Daten mit Bid/Ask-Informationen. Anders als proprietäre Formate ist BAR6 vollständig dokumentiert und kann von jedem Werkzeug gelesen werden.
Dateistruktur
Jede BAR6-Datei beginnt mit einem binären Header, gefolgt von den Datensätzen:
Header (24 Bytes)
| Offset | Größe | Typ | Feld | Beschreibung |
|---|---|---|---|---|
| 0 | 4 | uint32 | magic | 0xB16B4246 ("BAR6" im Little-Endian) |
| 4 | 1 | uint8 | version | Format-Version (1 = aktuell) |
| 5 | 1 | uint8 | data_type | 0 = Bar, 1 = Tick |
| 6 | 1 | uint8 | timeframe_minutes | Aggregationszeitraum (z.B. 5 = M5) |
| 7 | 33 | string | symbol | Null-terminierter Instrumentname |
Bar-Datensatz (44 Bytes)
Jeder Bar enthält Open, High, Low, Close und Volume:
| Offset | Größe | Typ | Feld | Beschreibung |
|---|---|---|---|---|
| 0 | 8 | int64 | timestamp | Unix-Millisekunden |
| 8 | 8 | double | open | Eröffnungskurs |
| 16 | 8 | double | high | Höchstkurs im Bar |
| 24 | 8 | double | low | Tiefstkurs im Bar |
| 32 | 8 | double | close | Schlusskurs |
| 40 | 4 | uint32 | volume | Anzahl Ticks |
Tick-Datensatz (34 Bytes)
Jeder Tick-Datensatz enthält Bid, Ask und Volume:
| Offset | Größe | Typ | Feld |
|---|---|---|---|
| 0 | 8 | int64 | timestamp (Unix-Millisekunden) |
| 8 | 8 | double | bid |
| 16 | 8 | double | ask |
| 24 | 4 | uint32 | bid_volume |
| 28 | 4 | uint32 | ask_volume |
Daten konvertieren
Nutze DataConvert, um deine Historien (CSV, MT4 .hst) in das BAR6-Format zu konvertieren. DataConvert läuft lokal auf deinem Rechner — deine Rohdaten verlassen nie deinen PC.
- Eingabe: CSV (Timestamp, Open, High, Low, Close, Volume) oder MT4 .hst
- Ausgabe: .bin-Datei im BAR6-Format
- Tool: github.com/hangmann/bar6-dataconvert
Warum BAR6?
- Kompakt: 44 Bytes pro Bar, 34 Bytes pro Tick — effiziente Speicherung und schnelle Lesezugriffe
- Dokumentiert: Vollständige Spezifikation, keine proprietären Geheimnisse
- Transparent: BAR6-Dateien können mit jeder Sprache gelesen werden (C++, Python, Java usw.) — kein Plattform-Lock-in
- Deine Daten, deine Regeln: Einmal konvertiert, überall nutzbar
BAR6 programmatisch lesen
BAR6 ist so einfach, dass es sich in jeder Sprache lesen lässt. Hier ein Python-Pseudocode: