Skip to content
A language for time-series analysis
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake Build on CMake 3.14 May 27, 2019
doc Initial commit May 21, 2019
scripts Added deployments to Travis May 31, 2019
src Reduce work done in REPL May 30, 2019
tests Fixed new crashing bug from parse errors May 30, 2019
thirdparty Fixed new crashing bug from parse errors May 30, 2019
.gitignore Initial commit May 21, 2019
.travis.yml Automated deploy from CI May 31, 2019
CMakeLists.txt Initial commit May 21, 2019
CONDUCT Initial commit May 21, 2019
LICENSE Initial commit May 21, 2019
Makefile Initial commit May 21, 2019
README.md Update README.md May 28, 2019
appveyor.yml Automated deploy from CI May 31, 2019
make.bat Initial commit May 21, 2019
sysconfig.hpp.in Initial commit May 21, 2019

README.md

Build Status Build Status

About Empirical

Empirical is a language for time-series analysis. It has statically typed Dataframes with integrated queries and builtin timestamps.

Examples

Read CSV files and infer their types (at compile time!):

>>> let trades = load$("trades.csv"), quotes = load$("quotes.csv")

Compute a one-minute volume-weighted average price (VWAP):

>>> from trades select vwap = wavg(size, price) by symbol, bar(timestamp, 1m)

Get the most recent quote for each trade:

>>> join trades, quotes on symbol asof timestamp

Get the closest event within three seconds:

>>> join trades, events on symbol asof timestamp nearest within 3s

See the website for more examples and full documentation.

Building Empirical

The build is handled by CMake. There are some scripts to help with the process, both for POSIX (*.sh) and Windows (*.bat). These can be called by make or make.bat for an easy workflow.

POSIX Windows
debug build make make.bat
production build make prod make.bat prod
run tests make test make.bat test
deploy binary make deploy make.bat deploy
clean build make clean make.bat clean

Additionally, POSIX has make website.

While the actual code is all C++, there are code generators that need the JVM (ANTLR) and Python (ASDL). These generators are included in this repo, so there is nothing to download.

The build is statically linked, so no libraries are needed to distribute the resulting binary.

Structure

The code for Empirical is structured as follows:

  • src/ - source code for Empirical
  • tests/ - regression tests
  • doc/ - documentation
  • cmake/ - CMake files
  • scripts/ - build scripts
  • thirdparty/ - open-source dependencies

License

Affero General Public License (AGPL) with the Commons Clause.

A proprietary license is available to vendors and customers that need more commercial-friendly terms.

You can’t perform that action at this time.