All Projects → michaelgrosner → Tribeca

michaelgrosner / Tribeca

Licence: other
A high frequency, market making cryptocurrency trading platform in node.js

Programming Languages

typescript
32286 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Tribeca

Krypto Trading Bot
Self-hosted crypto trading bot (automated high frequency market making) written in C++
Stars: ✭ 2,589 (-28.99%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trade, trading, exchange, market-maker
Wolfbot
Crypto currency trading bot written in TypeScript for NodeJS
Stars: ✭ 335 (-90.81%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trade, trading, exchange
Jesse
An advanced crypto trading bot written in Python
Stars: ✭ 1,038 (-71.53%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trade, trading
Qtbitcointrader
Secure multi crypto exchange trading client
Stars: ✭ 520 (-85.74%)
Mutual labels:  bitcoin, cryptocurrency, trade, trading, exchange
Octobot
Cryptocurrency trading bot: high frequency, daily trading, social trading, ...
Stars: ✭ 706 (-80.64%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, exchange
Ccxt.net
CCXT.NET – CryptoCurrency eXchange Trading Library for .NET
Stars: ✭ 89 (-97.56%)
Mutual labels:  bitcoin, cryptocurrency, trade, trading, exchange
Kupi Terminal
Ccxt based, open source, customized, extendable trading platform that supports 130+ crypto exchanges.
Stars: ✭ 104 (-97.15%)
Mutual labels:  bitcoin, cryptocurrency, trade, trading, exchange
Ccxt
A JavaScript / Python / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges
Stars: ✭ 22,501 (+517.14%)
Mutual labels:  bitcoin, cryptocurrency, trade, trading, exchange
Cryptotrader
A cryptocurrency trader for all famous exchanges
Stars: ✭ 228 (-93.75%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, exchange
Socktrader
🚀 Websocket based trading bot for 💰cryptocurrencies 📈
Stars: ✭ 152 (-95.83%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, exchange
tumbleweed gdax
Prototype market maker specialized to trade on CoinbasePro
Stars: ✭ 41 (-98.88%)
Mutual labels:  trading, trading-bot, hft, hft-trading, market-maker
Crypto Trading Bot
Cryptocurrency trading bot in javascript for Bitfinex, Bitmex, Binance, FTX, Bybit ... (public edition)
Stars: ✭ 1,089 (-70.13%)
Mutual labels:  trading-bot, cryptocurrency, trading, exchange
Cated
CATEd - Cryptocurrency Analytics and Trading Engine for Django
Stars: ✭ 84 (-97.7%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading
Siis
Trading bot including terminal, for crypto and traditionals markets. Assisted or fully automated strategy.
Stars: ✭ 45 (-98.77%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading
Astibot
Astibot is a simple, visual and automated trading software for Coinbase Pro cryptocurrencies (Bitcoin trading bot)
Stars: ✭ 104 (-97.15%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading
Cointrol
฿ Bitcoin trading bot with a real-time dashboard for Bitstamp.
Stars: ✭ 1,351 (-62.95%)
Mutual labels:  trading-bot, bitcoin, trade, trading
roq-samples
How to use the Roq C++20 API for Live Cryptocurrency Algorithmic and High-Frequency Trading as well as for Back-Testing and Historical Simulation
Stars: ✭ 119 (-96.74%)
Mutual labels:  trading, trading-bot, exchange, hft
Freqtrade Strategies
Free trading strategies for Freqtrade bot
Stars: ✭ 697 (-80.88%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading
Roq Api
API for algorithmic and high-frequency trading
Stars: ✭ 132 (-96.38%)
Mutual labels:  trading-bot, cryptocurrency, trading, exchange
adamant-tradebot
Free market-making software for cryptocurrency projects and exchanges. Makes trade volume, maintains spread and liquidity/depth, set price range, and builds live-like dynamic order book.
Stars: ✭ 113 (-96.9%)
Mutual labels:  trading, trading-bot, exchange, trade

tribeca

Join the chat at https://gitter.im/michaelgrosner/tribeca

tribeca is a very low latency cryptocurrency market making trading bot with a full featured web client, backtester, and supports direct connectivity to several cryptocoin exchanges. On modern hardware, it can react to market data by placing and canceling orders in under a millisecond.

Web UI Preview

Runs on the latest node.js (v7.8 or greater). Persistence is acheived using mongodb. Installation is recommended via Docker, but manual installation is also supported.

Docker compose installation

  1. Install docker compose.

  2. Change the environment variables of env file to match your desired configuration. Input your exchange connectivity information, account information, and mongoDB credentials.

  3. Run docker-compose up -d --build. If you run docker-compose ps, you should see the containers running.

Docker Installation

  1. Please install docker for your system before preceeding. Requires at least Docker 1.7.1. Mac/Windows only: Ensure boot2docker or docker-machine is set up, depending on Docker version. See the docs for more help.

  2. Set up mongodb. If you do not have a mongodb instance already running: docker run -p 27017:27017 --name tribeca-mongo -d mongo.

  3. Change the environment variables of env file to match your desired configuration. Input your exchange connectivity information, account information, and mongoDB credentials.

  4. Save the Dockerfile, preferably in a secure location and in an empty directory. Build the image from the Dockerfile docker build -t tribeca .

  5. Run the container docker run -p 3000:3000 --link tribeca-mongo:mongo --env-file ./env --name tribeca -d tribeca. If you run docker ps, you should see tribeca and mongo containers running.

Manual Installation

  1. Ensure your target machine has node v7.8 (or greater) and mongoDB v3 or greater. Also, ensure Typescript 2.2, grunt, and, optionally, forever are installed (npm install -g grunt-cli typescript forever).

  2. Clone the repository.

  3. In the cloned repository directory, run npm install to pull in all dependencies.

  4. Compile typescript to javascript via grunt compile.

  5. cd to the outputted JS files, in tribeca/service.

  6. Create a tribeca.json file based off the provided sample-dev-tribeca.json or sample-prod-tribeca.json files and save it in the current directory. Modify the config keys (see configuration section) and point the instance towards the running mongoDB instance.

  7. Set environmental variable TRIBECA_CONFIG_FILE to full path of tribeca.json

  8. Run forever start main.js to start the app.

Configuration

  • EXCHANGE

    1. coinbase - uses the WebSocket API. Ensure the Coinbase-specific properties have been set with your correct account information if you are using the sandbox or live-trading environment.

    2. hitbtc - WebSocket + socket.io API. Ensure the HitBtc-specific properties have been set with your correct account information if you are using the dev or prod environment.

    3. okcoin - Websocket.Ensure the OKCoin-specific properties have been set with your correct account information. Production environment only.

    4. bitfinex REST API only. Ensure the Bitfinex-specific properties have been filled out. REST API is not suitable to millisecond latency trading. Production environment only.

    5. null - Test in-memory exchange. No exchange-specific config needed.

  • TRIBECA_MODE

    1. prod

    2. dev

  • MongoDbUrl - If you are on OS X, change "tribeca-mongo" in the URL to the output of boot2docker ip on your host machine. If you are running an existing mongoDB instance, replace the URL with the existing instance's URL. If you are running from a Linux machine and set up mongo in step 1, you should not have to modify anything.

  • ShowAllOrders - Show all orders sent from the application in the Orders List in the UI. This is useful for debugging/testing, but can really negatively impact performance during real trading.

  • TradedPair - Any combination of the following currencies are supported, if the target EXCHANGE supports trading the currency pair:

    • USD
    • BTC
    • LTC
    • EUR
    • GBP
    • CNY
    • ETH
    • BFX
    • RRT
    • ZEC
    • BCN
    • DASH
    • DOGE
    • DSH
    • EMC
    • FCN
    • LSK
    • NXT
    • QCN
    • SDB
    • SCB
    • STEEM
    • XDN
    • XEM
    • XMR
    • ARDR
    • WAVES
    • BTU
    • MAID
    • AMP
  • WebClientUsername and WebClientPassword - Username and password for web UI access. If kept as NULL, no the web client will not require authentication (Not recommended at all!!)

Input your exchange connectivity information, account information, and API keys in the config properties for the exchange you intend on trading on.

Application Usage

  1. Open your web browser to connect to port 3000 of the machine running tribeca. If you're running tribeca locally on Mac/Windows on Docker, replace "localhost" with the address returned by boot2docker ip.

  2. Read up on how to use tribeca and market making in the wiki.

  3. Set up trading parameters to your liking in the web UI. Click the "BTC/USD" button so it is green to start making markets.

Web UI

Once tribeca is up and running, visit port 3000 of the machine on which it is running to view the admin view. There are inputs for quoting parameters, grids to display market orders, market trades, your trades, your order history, your positions, and a big button with the currency pair you are trading. When you're ready, click that button green to begin sending out quotes. The UI uses a healthy mixture of socket.io and angularjs.

REST API

Tribeca also exposes a REST API of all it's data. It's all the same data you would get via the Web UI, just a bit easier to connect up to via other applications. Visit http://localhost:3000/data/md for the current market data, for instance.

TODO

TODO:

  1. Add new exchanges

  2. Add new, smarter trading strategies (as always!)

  3. Support for currency pairs which do not trade in $0.01 increments (LTC, DOGE)

  4. More documentation

  5. More performant UI

Donations

If you would like to support this project, please consider donating to 1BDpAKp8qqTA1ASXxK2ekk8b8metHcdTxj

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].