A collection of custom modules for KDB-X.
| Module | Description | Status |
|---|---|---|
| di.simtick | Realistic intraday tick data simulator with configurable market microstructure | ✅ Ready |
| di.simcalendar | Multi-day tick simulation over a trading calendar | ✅ Ready |
| di.simbasket | Multi-instrument correlated tick simulation using a factor model | 🚧 In progress |
| di.simbook | L2 order book simulator | 🚧 In progress |
simtick ← simcalendar ← simbasket
simbook ← standalone (future: integration with simcalendar)
simtick is the atomic unit — one instrument, one day. Each layer above it adds a dimension: multiple days (simcalendar), multiple instruments (simbasket). simbook is a separate bottom-up simulator that models individual order flow events rather than deriving quotes from a price process.
git clone https://github.com/youruser/kdbx-modules.git
cd kdbx-modules
make replq)simtick:use`di.simtick
q)simcalendar:use`di.simcalendarOption 1: Command line (Makefile)
cd kdbx-modules
make replOption 2: Manual QPATH
export QPATH=$QPATH:/path/to/kdbx-modules
qOption 3: VS Code
After connecting to q, add the module path:
.Q.m.SP,:enlist"/path/to/kdbx-modules"Then load modules:
simcalendar:use`di.simcalendarkdbx-modules/
├── Makefile
├── README.md
└── di/
├── simtick/ # 1 instrument, 1 day (atomic unit)
│ ├── init.q
│ ├── presets.csv
│ ├── test.csv
│ └── README.md
├── simcalendar/ # 1 instrument, N days (uses di.simtick)
│ ├── init.q
│ ├── calendar.csv
│ └── README.md
├── simbasket/ # M instruments, N days (uses di.simcalendar) [WIP]
│ ├── init.q
│ └── README.md
└── simbook/ # L2 order book simulator, Gillespie algorithm [WIP]
├── init.q
└── README.md
Each module should follow the KDB-X module framework and include:
init.q— Module codetest.csv— Unit tests (k4unit format)README.md— Documentation
MIT