• Stars
    star
    459
  • Rank 95,377 (Top 2 %)
  • Language
    Elixir
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A composable, real time, market data and trade execution toolkit. Built with Elixir, runs on the Erlang virtual machine

Tai - Orchestrate Your Trading

Build Status Coverage Status hex.pm version

A composable, real time, market data and trade execution toolkit. Built with Elixir, runs on the Erlang virtual machine

Getting Started | Built with Tai | Commands | Architecture | Examples | Configuration | Observability

What Can I Do? TLDR;

Stream market data to create and manage orders with a near-uniform API across multiple venues

Here's an example of an advisor that logs the spread between multiple products on multiple venues

asciicast

Supported Venues

Venues Live Order Book Accounts Orders Products Fees
FTX [x] [x] [x] [x] [x]
OkEx [x] [x] [x] [x] [x]
BitMEX [x] [x] [x] [x] [x]

Venues In Progress

Venue Live Order Book Accounts Orders Products Fees
Binance [x] [x] [ ] [x] [x]
Deribit [x] [x] [ ] [x] [x]
GDAX [x] [x] [ ] [x] [x]
Huobi [x] [ ] [ ] [x] [ ]
Delta Exchange [x] [ ] [ ] [x] [x]
Bybit [ ] [ ] [ ] [x] [ ]
bit.com [ ] [ ] [ ] [ ] [ ]
Bitfinex [ ] [ ] [ ] [ ] [ ]
Kraken [ ] [ ] [ ] [ ] [ ]
CME [ ] [ ] [ ] [ ] [ ]
Phemex [ ] [ ] [ ] [ ] [ ]
BTSE [ ] [ ] [ ] [ ] [ ]
KuCoin [ ] [ ] [ ] [ ] [ ]
BitMax [ ] [ ] [ ] [ ] [ ]
Bitget [ ] [ ] [ ] [ ] [ ]
MEXC [ ] [ ] [ ] [ ] [ ]
PrimeXBT [ ] [ ] [ ] [ ] [ ]
Gate.io [ ] [ ] [ ] [ ] [ ]
Coinflex [ ] [ ] [ ] [ ] [ ]
bitFlyer [ ] [ ] [ ] [ ] [ ]

Install

tai requires Elixir 1.11+ & Erlang/OTP 22+. Add tai to your list of dependencies in mix.exs

def deps do
  [
    {:tai, "~> 0.0.75"}
    # Choose your order data store
    # {:ecto_sqlite3, "~> 0.5.6"}
    # {:postgrex, "~> 0.15"}
  ]
end

Create an .iex.exs file in the root of your project and import the tai helper

# .iex.exs
Application.put_env(:elixir, :ansi_enabled, true)

import Tai.IEx

Run the setup mix task to:

  • Download dependencies
  • Create an orders database
  • Generate tai migrations for the orders database
  • Run migrations
$ mix setup

Usage

tai runs as an OTP application.

During development we can leverage mix to compile and run our application with an interactive Elixir shell that imports the set of tai helper commands.

iex -S mix

Upgrading Tai

Bump the required version number in mix.exs and download the dependencies.

$ mix deps.update tai

Regenerate new or updated migrations

$ mix tai.gen.migration

Rerun ecto migrations

$ mix ecto.migrate

Help Wanted :)

If you think this tai thing might be worthwhile and you don't see a feature or venue listed we would love your contributions to add them! Feel free to drop us an email or open a Github issue.

Authors

License

tai is released under the MIT license

More Repositories

1

workbench

From Idea to Execution - Manage your trading operation across a distributed cluster
Elixir
113
star
2

prop

An open and opinionated trading platform using productive & familiar open source libraries and tools for strategy research, execution and operation.
Elixir
46
star
3

history

Download and warehouse historical trading data
Elixir
31
star
4

rube

A multi-chain DeFi development toolkit for Elixir
Elixir
30
star
5

slurp

An EVM block ingestion toolkit for Elixir
Elixir
28
star
6

wrap

Build, Publish & Deploy Elixir Infrastructure to the Cloud with Docker & Terraform
Elixir
22
star
7

slurpee

A GUI frontend to manage blockchain ingestion with slurp
Elixir
20
star
8

notified_phoenix

Phoenix live views for notified
Elixir
17
star
9

navigator

Global navigation between multiple Phoenix endpoints
Elixir
16
star
10

ex_bitmex

BitMEX API Client for Elixir
Elixir
15
star
11

notified

An Elixir library for application notifications
Elixir
14
star
12

ex_binance

Binance API Client for Elixir
Elixir
12
star
13

signaturedb

Distributed, version controlled, SQL database with cryptographically verifiable storage, queries and results. Think git for postgres or pandas.
8
star
14

stored

Store & retrieve structs against various backends with a simple lightweight API
Elixir
8
star
15

with_env

Manage the Elixir application environment within a context
Elixir
7
star
16

transit

A bytes first implementation of the Kafka API within an S3 keyspace
Zig
6
star
17

ex_ftx

FTX API Client for Elixir
Elixir
6
star
18

workshop

Create, manage & improve your automated trading strategies with rich and diverse data sets, a first class local development experience and a progression story for deployment across clouds.
Go
5
star
19

libcluster_gce

Google Compute Engine (GCE) clustering strategy for libcluster. It currently supports identifying nodes based on GCE labels.
Elixir
3
star
20

ex_bybit

Bybit API Client for Elixir
Elixir
3
star
21

tabletop

A curated selection of tools, libraries and services that help tame your dataflow to productively build ambitious, data driven & reactive applications on a streaming lakehouse
Go
3
star
22

siphon

A pull/push extract toolkit with output support for singer
Elixir
2
star
23

stylish

Phoenix view helpers for HTML components styled with tailwindcss
Elixir
2
star
24

deuce

A pairs trading terminal for managing risk & volatility
Elixir
2
star
25

ex_deribit

Deribit API Client for Elixir
Elixir
2
star
26

ex_huobi

Huobi API Client for Elixir
Elixir
2
star
27

ex_polygon

Polygon.io API Client for Elixir
Elixir
2
star
28

desk

An advisor reference library for tai
Elixir
1
star
29

ex_mexc

MEXC API Client for Elixir
Elixir
1
star
30

cloud_control

Airbnb Rental Management
1
star
31

rewind

Backtest historical trading strategies
Elixir
1
star
32

ecto_term

Ecto type for Erlang term format
Elixir
1
star
33

ex_phemex

Phemex API Client for Elixir
Elixir
1
star
34

ex_poloniex

Poloniex API Client for Elixir
Elixir
1
star
35

clustered

Elixir cluster utilities
Elixir
1
star
36

ex_gate_io

Gate.io API Client for Elixir
Elixir
1
star
37

ordered_nary_tree

A map based implementation of a pure Elixir ordered n-ary tree
Elixir
1
star
38

ex_coinglass

Elixir
1
star
39

paged_query

Ecto query helpers for pagination
Elixir
1
star
40

sqlp.zig

A generic SQL parser aiming to support all major dialects
Zig
1
star
41

ex_delta_exchange

Delta.Exchange API Client for Elixir
Elixir
1
star