All Projects β†’ ExchangeUnion β†’ market-maker-bot

ExchangeUnion / market-maker-bot

Licence: AGPL-3.0 license
MM Bot for OpenDEX. Make profits via arbitrage between OpenDEX and a connected CEX account like Binance πŸ€–

Programming Languages

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

Projects that are alternatives of or similar to market-maker-bot

Krypto Trading Bot
Self-hosted crypto trading bot (automated high frequency market making) written in C++
Stars: ✭ 2,589 (+2982.14%)
Mutual labels:  bitfinex, market-maker, kraken, binance
Cryptofeed
Cryptocurrency Exchange Websocket Data Feed Handler
Stars: ✭ 643 (+665.48%)
Mutual labels:  bitfinex, kraken, binance
Trading Indicator
provide trading technical indicator values based on data of almost crypto currency exchanges
Stars: ✭ 31 (-63.1%)
Mutual labels:  bitfinex, kraken, binance
Crypto vba
An Excel/VBA project to communicate with various cryptocurrency exchanges APIs
Stars: ✭ 103 (+22.62%)
Mutual labels:  bitfinex, kraken, binance
My Token
πŸ“ˆTrack token prices of your favorite exchanges in terminal!
Stars: ✭ 141 (+67.86%)
Mutual labels:  bitfinex, kraken, binance
Nescience-Indexing-CLI
Nescience Software & Capital Rebalancing Tool
Stars: ✭ 26 (-69.05%)
Mutual labels:  bitfinex, kraken, binance
Goex
Exchange Rest And WebSocket API For Golang Wrapper support okcoin,okex,huobi,hbdm,bitmex,coinex,poloniex,bitfinex,bitstamp,binance,kraken,bithumb,zb,hitbtc,fcoin, coinbene
Stars: ✭ 1,188 (+1314.29%)
Mutual labels:  bitfinex, kraken, binance
Cryptocurrency Portfolio
Google Sheets automatic creation with Google Apps Script (GAS) for managing a cryptocurrency tracking spreadsheet with multi exchanges
Stars: ✭ 134 (+59.52%)
Mutual labels:  bitfinex, kraken, binance
Exchanges Php
This is a virtual currency SDK that brings together multiple exchanges
Stars: ✭ 134 (+59.52%)
Mutual labels:  bitfinex, kraken, binance
cryptogalaxy
Get any cryptocurrencies ticker and trade data in real time from multiple exchanges and then save it in multiple storage systems.
Stars: ✭ 96 (+14.29%)
Mutual labels:  bitfinex, kraken, binance
Orko
Trade on and script multiple crypto exchanges from a single user interface on desktop and mobile. In development.
Stars: ✭ 128 (+52.38%)
Mutual labels:  bitfinex, kraken, binance
Bitcoinexchangefh
Cryptocurrency exchange market data feed handler
Stars: ✭ 871 (+936.9%)
Mutual labels:  bitfinex, kraken
CryptoTickerBot
A .NET Core program to fetch ticker data from various crypto exchange websites.
Stars: ✭ 30 (-64.29%)
Mutual labels:  kraken, binance
Crypto Whale Watcher
An app to keep a watch on big volume trades of cryptocurrecies on different exchanges by sending alerts via a Telegram Bot.
Stars: ✭ 60 (-28.57%)
Mutual labels:  bitfinex, binance
Crypto Trading Bot
Cryptocurrency trading bot in javascript for Bitfinex, Bitmex, Binance, FTX, Bybit ... (public edition)
Stars: ✭ 1,089 (+1196.43%)
Mutual labels:  bitfinex, binance
add-tradingview-alerts-tool
Automated entry of TradingView alerts for bot trading tools such as 3Commas, Alertatron, CryptoHopper, etc.
Stars: ✭ 467 (+455.95%)
Mutual labels:  kraken, binance
Exchangesharp
ExchangeSharp is a powerful, fast and easy to use .NET/C# API for interfacing with many crypto currency exchanges. REST and web sockets are supported.
Stars: ✭ 489 (+482.14%)
Mutual labels:  bitfinex, kraken
Xchange.js
Bitcoin and Altcoin exchange api aggregator / wrapper
Stars: ✭ 74 (-11.9%)
Mutual labels:  bitfinex, kraken
Cryptotrader
A responsive dynamic webapp to trade cryptopairs on the most prominent exchanges
Stars: ✭ 118 (+40.48%)
Mutual labels:  bitfinex, kraken
open-trading-platform-UI
The Open Trading Platform UI is a front-end module for trading across 5 crypto currency exchanges allowing both spot and margin trading. The UI needs to be used with the API repo.
Stars: ✭ 54 (-35.71%)
Mutual labels:  bitfinex, binance

Market Maker Bot

Arby

Arby is a market maker bot that allows to easily arbitrage between OpenDEX and centralized exchanges like Binance. In other words, anyone with capital to spare is able to "earn interest" on their assets by running arby and providing liquidity to the OpenDEX network.

The overall goal of Arby is to pull liquidity from centralized exchanges into OpenDEX and incentivize this process financially.

How it works

Arby looks for arbitrage opportunities on the OpenDEX network. It issues orders on OpenDEX based on the price of a connected centralized exchange, adding the configured margin on top. It will update the orders as soon as the price on the centralized exchange changes.

Trades on OpenDEX are settled in seconds. This allows arby to execute the counter trade on the connected centralized exchange right after an order is settled on OpenDEX. Since the order on OpenDEX was issued with an additional margin, the trade on the centralized exchange can almost always be settled for a significantly better price. The price difference between the two trades is the profit (the "interest") arby generates.

Example with real numbers:

  • Balances before starting Arby
Currency OpenDEX Binance
BTC 1.0 1.0
USDT 11000 11000
  • Total BTC balance between OpenDEX and Binance 1.0 + 1.0 = 2.0 BTC
  • Total USDT balance between OpenDEX and Binance 11000 + 11000 = 22000 USDT

  • Arby is started for BTC/USDT trading pair with 3% margin. The configured centralized exchange is Binance.
  • Balance on OpenDEX is 1 BTC and 1 BTC on Binance
  • USDT balance on OpenDEX is 10000 USDT and 10000 USDT on Binance
  • Arby monitors the latest price of BTC/USDT on Binance. The latest price is $10000.
  • Arby creates/updates the buy order on OpenDEX for 10000 - 0.03 * 10000 = $9700.
  • Arby creates/updates the sell order on OpenDEX for 10000 * 1.03 = $10300.
  • Whenever the latest price on Binance changes, Arby updates the orders on OpenDEX accordingly.
Scenario A
  • OpenDEX buy order is filled and settled for 1 BTC ($9700).
  • Arby issues a sell order on Binance for 0.97 BTC ($9700), locking in 0.03 BTC ($300) profit.
  • Balances after scenario A
Currency OpenDEX Binance
BTC 2.0 0.03
USDT 1300 20700
  • Total BTC balance between OpenDEX and Binance 2.0 + 0.03 = 2.03 BTC (0.03 BTC yield)
  • Total USDT balance between OpenDEX and Binance 1300 + 20700 = 22000 USDT

Scenario B
  • OpenDEX sell order is filled and settled for 1 BTC ($10300)
  • Arby issues a buy order on Binance for 1.03 ($10300), locking in 0.03 BTC ($300) profit.
Currency OpenDEX Binance
BTC 0 2.03
USDT 21300 700

Total BTC balance between OpenDEX and Binance 2.0 + 0.03 = 2.03 BTC (0.03 BTC yield) Total USDT balance between OpenDEX and Binance 21300 + 700 = 22000 USDT


FAQ

Which exchanges are supported?

Currently, Binance and Kraken are supported. Bitfinex is next on the roadmap.

#92

What happens if I lose connectivity to Binance?

Arby will automatically remove all orders on OpenDEX until connection is re-established.

What happens if the order quantity is too big to execute on Binance?

Arby will not execute trades on OpenDEX that it cannot counter-trade on Binance.

What happens when the order quantity is too small to execute on Binance?

Arby will automatically accumulate the traded quantity on OpenDEX and only execute an order on Binance when it is greater than or equal to the minimum amount on Binance.

Is it possible to configure Arby to take profits in non-BTC assets?

Support for taking profits in other assets (ETH, DAI, USDT etc.) is technically supported, but currently not enabled.

What about rebalancing between centralized exchange and OpenDEX balances?

Support for automatic rebalancing of the assets is planned in the upcoming releases.

Setup instructions

Recommended way of running Arby is by following the market maker guide.

Development Setup

The setup guide below is only for development purposes. Please refer to the guide above for production use.

The development mode assumes a working xud setup with functioning swap clients for all currencies Arby is configured to use.

Requirements
  • Node v12.18.0+
Install dependencies

npm i

Configuration

Copy .env-example to .env

Start in development mode

npm run dev:arby

Tests

npm run test or npm run test:watch to continuously run the tests.

Disclaimer

This is alpha software. Please be extra careful when using this on the mainnet.

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].