Datenformate DTA / DAT / KEY¶
DTA – Kursdaten (Zeitreihen)¶
Pfadschema: {SigPath}\{Symbol[0]}\{Range}{d|w|m}{Symbol}.dta
Beispiel: C:\GRS\SIG2\SIG06\Z\ZHdNESTN.dta (Nestlé, täglich, Schweiz)
LONGFILE-Format (neueres Format)¶
Header 200 Bytes, Records je 20 Bytes:
| Offset | Grösse | Typ | Inhalt |
|---|---|---|---|
| 0 | 8 | ASCII | Magic "LONGFILE" |
| 8 | 2 | uint16 LE | maxSlots (max. Records) |
| 10 | 1 | byte | dataType (0=Tag, 1=Woche, 2=Monat, 3=Jahr) |
| 19 | 2 | uint16 LE | nNrOfItems (effektive Einträge) |
| 200+ | 20×n | Records |
Record-Struktur (20 Bytes):
| Offset | Typ | Inhalt |
|---|---|---|
| 0 | uint16 | Jahr |
| 2 | uint8 | Monat |
| 3 | uint8 | Tag |
| 4 | float32 LE | High |
| 8 | float32 LE | Low |
| 12 | float32 LE | Close |
| 16 | float32 LE | Volume |
Iteration: maxSlots mal lesen, bei Jahr0 abbrechen.
SHORT-Format (älteres DOS-Ringpuffer-Format)¶
Header 200 Bytes, Records je 12 Bytes (uint16 statt float32).
Preise/Volumes werden mit nPriceFactor/nVolumeFactor skaliert.
DAT – Stammdaten (TITLE.DAT)¶
- Record-Grösse: 236 Bytes, Start-Offset: 513
- Erkennung: Pattern
\d{6}\x00\x00= Valor-Nummer - Felder im Text-Bereich (45 Bytes vor dem Null-Separator)
| Offset | Grösse | Inhalt |
|---|---|---|
| 0 | 20 | Name |
| 20 | 10 | Land |
| 30 | 10 | Währung (2-4 Grossbuchstaben) |
| 40 | 5 | Symbol |
KEY – Alphabetischer Index¶
- Global-Header: 4 Bytes
- Records: je 44 Bytes (40 Bytes Text + 4 Bytes Suffix/Pointer)
- Einträge die mit
-oder+beginnen = Changelog, filtern