How ninety47/dukascopy works
lib-dukascopy is a C++ library for extracting tick records from Dukascopy raw binary and LZMA-compressed BI5 files. A caller supplies a filename, epoch, and price point value to n47::read; it loads the file, detects compression, and dispatches to decompression and/or binary parsing before returning tick data. The parser converts 20-byte records into timestamped ask/bid prices and volumes. The README documents both file formats; the sampled implementation confirms the dispatch and decoding path. The graph omits uncertain details beyond those sources.
Main entry points: dukascopy.cpp Read API · lzma.cpp LZMA decompressor · io.hpp File loader · dukascopy.h Tick data model
Components 9
Library entry
- Read API
src/dukascopy.cpp - File loader
include/ninety47/dukascopy/io.hpp
File decoding
- LZMA detection
src/lzma.cpp - LZMA decompressor
src/lzma.cpp - EasyLZMA
- Binary parser
src/dukascopy.cpp
Tick records
- Tick data model
include/ninety47/dukascopy.h - Tick data result
include/ninety47/dukascopy.h
Other components
- Library caller
Connections 9
- Library caller → Read API: calls
- Read API → File loader: loads file
- Read API → LZMA detection: checks format
- Read API → Binary parser: parses raw
- Read API → LZMA decompressor: decompresses BI5
- LZMA decompressor → EasyLZMA: calls
- Read API → Binary parser: parses decompressed
- Binary parser → Tick data model: creates ticks
- Read API → Tick data result: returns