Barbotine Arbitrage Bot
CCXT-based cross-exchange arbitrage bot operating on CEXs, entirely written in Python. Work without any transfer between exchanges.
Install / Use
npx skills add nelso0/barbotine-arbitrage-botInstalls into whichever agent you are using.
README
Σ Barbotine
<p align="left"> <img alt="Barbotine arbitrage bot" width="400px" height="auto" src="./screenshot.png"> </p>Table of content
<a name="features"/>Features
- Compatible with all ccxt exchanges
- Ready-to-run
- Precise at the orderbook level (close to a market-making algorithm)
- Can work with an unlimited number of exchanges at the same time
- Does a balance simulation for every possible opportunity to always choose the most profitable one
- Opportunities updates on Telegram and webhooks
- Full logging system
Prerequisites
- Python 3+ inferior to 3.12! (for windows users: if python or pip isn't recognized as a command, make sure you have installed python by checking the box "add to PATH")
Installation
- Clone the repository
git clone https://github.com/nelso0/barbotine-arbitrage-bot # you can also download the zip file
- Go to the repository you just cloned
cd barbotine-arbitrage-bot
- Install all the requirements to run the arbitrage system
pip install -r requirements.txt
- Set your configuration details in exchange_config.py
- Run with:
python main.py
<a name="usage"/>
Usage
You can also run it with one line like this:
python main.py <mode> [renew-time-minutes] <balance-usdt-to-use> <pair> <exchanges list separated by commas (no space!)>
-
<mode>= the mode you wanna use betweenfake-moneyandreal. See full version for real mode.fake-moneywill run the bot with the balance-usdt-to-use you put, with a virtual balance, just to test.realwill run the bot with real money, and your strategy.
-
[renew-time-minutes]= ONLY IF YOU ENABLED RENEWAL SETTING IN THE CONFIG. If you enabled it, you have to put the number of minutes a session should last. After each session, the bot sells all the assets back to rebalance. Note: you can trigger a manual rebalance while in a session by pressing the Enter key. -
<balance-usdt-to-use>= how to be clearer? -
<pair>= The pair you want to arbitrage on. -
<exchanges list>= the exchanges you want the bot to scan the orderbooks on, among all the CCXT-compatible exchanges. From a 2 exchanges minimum, up to an unlimited number. Don't forget to configure the exchanges in exchange_config.py.
Examples:
with renewal disabled (default):
python main.py fake-money 500 EOS/USDT binance,okx,kucoin # run the bot with 500 USDT and rebalance every 15 minutes, with binance okx and kucoin
with renewal enabled:
python main.py real 15 1000 SOL/USDT binance,poloniex,kucoin # run the bot with 1000 USDT on binance phemex and bybit on SOL/USDT, and rebalance every 15 minutes.
<a name="how"/>
How does it work?
<details> <summary>Click to view the complete operation flow diagram</summary> <div style="width: 400px"><img style="width: 400px" src="./operation-diagram.svg"></div> </details> <a name="full-version"/>Full version
Contact me if you're interested in the full version that works with real balances
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.7kCommit, push, and open a PR
