Skip to main content

Triangular illustration

Arbitrage Opportunity Detection by OctoBot 1.2.0

PyPI Dockerhub

This Python-based project utilizes the ccxt library and the OctoBot library to detect potential arbitrage opportunities across multiple assets in cryptocurrency markets. It identifies profitable cycles where you can trade through a series of assets and return to the original asset with a potential gain, making it applicable for arbitrage strategies beyond just triangular cycles.

Description

Arbitrage trading is a process where you trade from one asset or currency to another, and then continue trading through a series of assets until you eventually return to the original asset or currency. The goal is to exploit price differences between multiple assets to generate a profit. For example, you could start with USD, buy BTC, use the BTC to buy ETH, trade the ETH for XRP, and finally sell the XRP back to USD. If the prices are favorable throughout the cycle, you could end up with more USD than you started with. This project provides a method to identify the best arbitrage opportunities in a multi-asset cycle, given a list of last prices for different cryptocurrency pairs. It's a versatile and effective tool for anyone interested in cryptocurrency trading and arbitrage strategies across various currencies and assets.

Note: the results do not account for fees during trades. This can have a significant impact on performance.

Getting Started

Dependencies

  • Python 3.10

Installing

pip3 install -r requirements.txt

Usage

Start detection by running:

python3 main.py

Example output on Binance:

-------------------------------------------
New 2.33873% binanceus opportunity:
# 1. buy DOGE with BTC at 552486.18785
# 2. sell DOGE for USDT at 0.12232
# 3. buy ETH with USDT at 0.00038
# 4. buy ADA with ETH at 7570.02271
# 5. sell ADA for USDC at 0.35000
# 6. buy SOL with USDC at 0.00662
# 7. sell SOL for BTC at 0.00226
-------------------------------------------

Configuration

To change the exchange edit main.py exchange_name value to the desired exchange. It should match the exchange ccxt id value

You can also provide a list of symbol to ignore when calling run_detection using ignored_symbols and a list of symbol to whitelist using whitelisted_symbols.

Help

You can join any OctoBot community to get help Discord Telegram Chat

Metadata

Release files for octobot-triangular-arbitrage 1.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for octobot-triangular-arbitrage 1.2.2
File Size Uploaded
octobot_triangular_arbitrage-1.2.2.tar.gz 17.7 kB Details

Release files / octobot_triangular_arbitrage-1.2.2.tar.gz

Download URL octobot_triangular_arbitrage-1.2.2.tar.gz
Size 17.7 kB
Tags Source
SHA-256 checksum
How to use checksums
dbc7a6dd0cb29bef0059a2fdc18033c51f2b0034080bf6b0763cf16bcd675ec1
BLAKE2b-256 checksum
How to use checksums
4bfbe610e61c20cfded6725e00d00ea879dcf5c07043213b225730fd92f07558
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.19

Release history Release notifications | RSS feed

This release

1.2.2 This release

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page