## Computation service dedicated to timeseries

LispTick is a powerfull timeseries computation engine built around pure streaming.

It is implemented in Go, a modern language with concurrent programming in mind. As a result LispTick can fully use all your cores and can be available on any platform and OS where Go is available. We have already tested it on Linux, MacOs and Windows with Intel or AMD Cpus and also ARM (Apple M1, RPi, Onion Omega…).

To create compact but powerful requests a dialect of LISP is used. Embed types like Time, Duration and Timeseries, a list of pairs (Time, Value), allow stacked computation on the fly.

## Language Syntax

- Atoms
- Lists
- Arrays
- Creating Functions
- Bindings
- Calling Functions
- Conditionals
- Builtin Functions
- Array Functions
- String Functions
- Time & Date Functions
- Hashmap Functions

## Timeseries & Extension

`backward`

: Move one update backward in time`cf`

aka`clockref`

: Synchronize on this timeserie`delta`

: Difference between two consecutive values`forward`

: Move one update forward in time`graphsample`

: Sample serie to get just enough point for a graph`hist`

: Compute histogram`history`

: Return list of available dates for specified source and code`keep`

: Filter values with condition`kurtosis`

: unbiased sample kurtosis`label`

: Give a name to a timeserie`localize`

: Enforce location of time`map-reduce`

: Compute result in parallel using all available ressources`map-reduce-arg`

: Same as map-reduce but result contains used arguments`max`

: Maximum of several timeseries or values`mean`

: sample arithmetic mean`median`

: sample median`merge`

: Merge several timeseries`min`

: Minimum of several timeseries or values`now`

: Current Time`one`

: Replace values by 1.0`perimeter`

: Return list of available codes for specified source and date`prune`

: Only keep changing values in Timeserie`range`

: Create a range of inputs to be used by map-reduce`reverse`

: Reverse timeserie timeling`rts`

: Recursive timeserie`sd`

: unbiased sample standard deviation`sigma`

: Summation of values`sign`

: Replace values by its sign (-1 0 1)`skewness`

: unbiased sample skewness (asymmetry)`slice`

: Cut timeserie or array/list in time or position`sliding`

: Transform serie on a sliding window`subsample`

: Synthesize serie by period`sync`

: Synchronized timeseries`tget`

: Picking time in Timeserie`time-as-array`

: Extract values of timeserie in an array`time-as-value`

: Use times of timeserie as values`time-truncate`

: Truncate times of timeserie`timeserie`

: Creating Timeserie`uniq`

: Delete duplicates`value-as-array`

: Extract values of timeserie in an array`version`

: LispTick version`vget`

: Picking value in Timeserie

## Experimental

`conv`

: Convolution`covariance`

: Convariance`dropout`

: Dropout`maxpool`

: MaxPool`shape`

: Tensor Shape`solve`

: Cost function solver aka NN Learning mechanism`svd-s`

: Singular Value Decomposition, singular values`svd-u`

: Singular Value Decomposition, U orthonormal base`svd-v`

: Singular Value Decomposition, V orthonormal base`tensor`

: Tensor creation`transpose`

: Tensor transposition

## Examples

- Compare returns of two series
- Price vs VWAP (Volume Weighted Average Price)
- Price vs TWAP (Time Weighted Average Price)
- Compute SMA EMA and MACD
- Compute Hayashi Yoshida correlation estimator
- Trade signing (aka trade-typing)
- Finance algorithms applied to hive monitoring
- Meteorology Statistics