Daniel Krizian
Daniel Krizian
When strategy queries data from disk, eliminate from retrieval any records that don’t fall within one of the sym-date-time pairs while only performing one access to the on disk database....
Expected benefits in addition to performance: no if statements, shorter code
The biggest backtest performance hog is the construction of event queue. Market prices used for e.g. mtm take up at least half of the queue size (and for low freqency...
/code/tick/backtestfeed.q The performance can be improved by separating/quasi-parallelising "events"+"orderdata" into one process and "feed" into own process. While "feed" works its way down the chunk 1 queue, "events"+"orderdata" pre-processes chunk...
`src.tablename` - prepend `src` to file/directory names on disk? Rename [this](https://github.com/poetiq/poetiq/blob/master/strategy/strategy1.q#L4-L5) to e.g. `equitysim.trade` Otherwise var names may clash with other modules. Source: Namespaces vs Directories chapter of Psaris: Q...
interfaces are prepended with directory (context) notation (.) `.market`; `.bt`; `oms`; `port`; `dt` ? External interfaces (`.market`) can then be abstracted and applied uniformly in both backtesting and live trading...
Follow advice by Nick Psaris (Q Tips book and [here](https://groups.google.com/forum/#!msg/personal-kdbplus/rwWTHj18PCU/HbAZLVP6CgAJ))
This is part of the effort to separate TorQ and business logic. For example, switching easily between target size and target weight portfolio construction: https://github.com/poetiq/poetiq/blob/master/src/optimiser/opt.q#L3-L6
At the moment, the path is tickerplant dependent legacy: /code/tick/tick/equitysim.q Event schemas currently look like this: ``` quote:flip`time`sym`bid`ask`bsize`asize`mode`ex!"tsffjjcc"$\:() trade:flip`time`sym`price`size`stop`cond`ex!"tsfjbcc"$\:() mtm:flip`time`date`sym`close!"ndsf"$\:() signal:flip`sym`date`signal`time!"sdin"$\:() targetsz:flip`sym`date`sz`time!"sdin"$\:() targetw:flip`sym`date`w`time!"sdfn"$\:() order:flip`sym`date`size`time!"sdin"$\:() fill:flip`date`sym`time`price`size!"dsnfj"$\:() ```