uterus is a codec library for financial tick data with an emphasis on market data integrity and maintainability. It comes with a set of tools to convert (mux) and print (demux) data from some sources, and to perform standard tasks like selecting instruments, creating snapshots and candles from tick data, etc. Special care is taken to provide longevity and consistence. All timestamps are internally converted to coordinated time, and price and quantity quotes are converted to a monetary datatype which doesn't suffer from rounding errors. Most importantly, meta data is stored along with the payload data in an inseparable unit, to provide self-contained and self-documenting files or network streams.
| Tags | shell Finance data exchange Library tick data Time Series |
|---|---|
| Licenses | BSD Three-Clause |
| Operating Systems | POSIX |
| Implementation | C |
| Translations | English |
Recent releases


Release Notes: Bugfixes: ute info copes with opposite-endian files; ute shnot works for bidask ticks; and m30 and m62 readers work on numbers with rounding artefacts. Minor enhancements: ute info supports -i|--interval chunking; libuterus provides an iterator ute_iter(); and m30 and m62 readers and printers are outsourced into libuterus.


Release Notes: Volume ticks can now have a candle type (vol + vwap + twap). uta muxer/printer now copes with any tick and candle type. The dukas --guess option no longer crashes. ute mux --into a non-existing file no longer crashes. compression via ute fsck -z will not mangle files anymore in the case where multiple files are given and the compressed size is 48 mod 64.


Release Notes: This release provides lzma compression support (ute fsck --compress/--decompress), provides chandeller (ute chndl) to draw candles from tick or snap data, provides an info command (ute info) to get an overview of ute file contents, lets muxer and printer DSOs (modules) have muxer/printer-specific commandline options, gives the hdf5 printer a --matlab option to aid matlab importation, and lets the dukas muxer guess (via --guess) timeseries parameters (such as the symbol name or the reference date) from the filename.


Release Notes: An endianness converter was provided in ute fsck (--little-endian|--big-endian). Tests now run on big-endian machines. m62 objects were made to coincide with m30s on any platform (i.e. big-endian m62 mantissa is split into 30bits + 2bits exponent + 32bits rest mantissa). The shared libuterus.so library is now installed. The missing ute_free() function was provided to close a context without flushing/resorting. Incorrect endianness is now converted on the fly in ute print. A UO_NO_CREAT_TPC open flag was provided to defer the creation of the scratch TPC page when opening files.


Release Notes: This bugfix release properly handles tick pages which run out of breathing space, properly reads over marker ticks, copes with systems whose mmap page size is not 4k, and provides an fxstreet muxer, SL2T_{BID,ASK} ticks, m30 and m62 relational ops (gt, lt, eq, ne), and an m30 special FFFF_M30_MKT for market orders.
A Swing component for displaying PDF documents in applets or applications.
A Java framework for building modular, cross-platform applications.