<p align="center">
<img src="illustration.jpeg" width="250px" height="250px" alt="Triangular illustration">
</p>
# Arbitrage Opportunity Detection by OctoBot [1.2.0](https://github.com/Drakkar-Software/Triangular-Arbitrage/blob/master/CHANGELOG.md)
[![PyPI](https://img.shields.io/pypi/v/OctoBot-Triangular-Arbitrage.svg)](https://pypi.python.org/pypi/OctoBot-Triangular-Arbitrage/)
[![Dockerhub](https://img.shields.io/docker/pulls/drakkarsoftware/octobot-triangular-arbitrage.svg?logo=docker)](https://hub.docker.com/r/drakkarsoftware/octobot-triangular-arbitrage)
This Python-based project utilizes the [ccxt library](https://github.com/ccxt/ccxt) and the [OctoBot library](https://github.com/Drakkar-Software/OctoBot) 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.
## 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](https://github.com/ccxt/ccxt?tab=readme-ov-file#certified-cryptocurrency-exchanges)
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](https://img.shields.io/discord/530629985661222912.svg?logo=discord&label=Discord)](https://octobot.click/gh-discord) [![Telegram Chat](https://img.shields.io/badge/telegram-chat-green.svg?logo=telegram&label=Telegram)](https://octobot.click/gh-telegram)
Raw data
{
"_id": null,
"home_page": "https://github.com/Drakkar-Software/Triangular-Arbitrage",
"name": "OctoBot-Triangular-Arbitrage",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Drakkar-Software",
"author_email": "contact@drakkar.software",
"download_url": "https://files.pythonhosted.org/packages/0b/50/4f1571ceed04644763a534ce4fe28cd87d2ee3dba6f843533d5ca2d80d65/OctoBot-Triangular-Arbitrage-1.2.0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img src=\"illustration.jpeg\" width=\"250px\" height=\"250px\" alt=\"Triangular illustration\">\n</p>\n\n# Arbitrage Opportunity Detection by OctoBot [1.2.0](https://github.com/Drakkar-Software/Triangular-Arbitrage/blob/master/CHANGELOG.md)\n[![PyPI](https://img.shields.io/pypi/v/OctoBot-Triangular-Arbitrage.svg)](https://pypi.python.org/pypi/OctoBot-Triangular-Arbitrage/)\n[![Dockerhub](https://img.shields.io/docker/pulls/drakkarsoftware/octobot-triangular-arbitrage.svg?logo=docker)](https://hub.docker.com/r/drakkarsoftware/octobot-triangular-arbitrage)\n\nThis Python-based project utilizes the [ccxt library](https://github.com/ccxt/ccxt) and the [OctoBot library](https://github.com/Drakkar-Software/OctoBot) 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.\n\n## Description\n\nArbitrage 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.\n\n## Getting Started\n\n### Dependencies\n\n* Python 3.10\n\n### Installing\n\n```\npip3 install -r requirements.txt\n```\n\n### Usage\nStart detection by running:\n```\npython3 main.py\n```\n\nExample output on Binance:\n```\n-------------------------------------------\nNew 2.33873% binanceus opportunity:\n# 1. buy DOGE with BTC at 552486.18785\n# 2. sell DOGE for USDT at 0.12232\n# 3. buy ETH with USDT at 0.00038\n# 4. buy ADA with ETH at 7570.02271\n# 5. sell ADA for USDC at 0.35000\n# 6. buy SOL with USDC at 0.00662\n# 7. sell SOL for BTC at 0.00226\n-------------------------------------------\n```\n\n### Configuration\nTo change the exchange edit `main.py` `exchange_name` value to the desired exchange. It should match the exchange [ccxt id value](https://github.com/ccxt/ccxt?tab=readme-ov-file#certified-cryptocurrency-exchanges)\n\nYou 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`.\n\n## Help\n\nYou can join any OctoBot community to get help [![Discord](https://img.shields.io/discord/530629985661222912.svg?logo=discord&label=Discord)](https://octobot.click/gh-discord) [![Telegram Chat](https://img.shields.io/badge/telegram-chat-green.svg?logo=telegram&label=Telegram)](https://octobot.click/gh-telegram)\n",
"bugtrack_url": null,
"license": null,
"summary": "Triangular arbitrage by OctoBot",
"version": "1.2.0",
"project_urls": {
"Homepage": "https://github.com/Drakkar-Software/Triangular-Arbitrage"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0b504f1571ceed04644763a534ce4fe28cd87d2ee3dba6f843533d5ca2d80d65",
"md5": "a0f912fb752bd2d60658c81ee18a06e5",
"sha256": "ad54bb6e7b0f196e0bb5a07cd46cfd9ad0d19fa2079189fe657d45d3892eb38a"
},
"downloads": -1,
"filename": "OctoBot-Triangular-Arbitrage-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "a0f912fb752bd2d60658c81ee18a06e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 16827,
"upload_time": "2024-10-24T19:01:12",
"upload_time_iso_8601": "2024-10-24T19:01:12.775019Z",
"url": "https://files.pythonhosted.org/packages/0b/50/4f1571ceed04644763a534ce4fe28cd87d2ee3dba6f843533d5ca2d80d65/OctoBot-Triangular-Arbitrage-1.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-24 19:01:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Drakkar-Software",
"github_project": "Triangular-Arbitrage",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "octobot-triangular-arbitrage"
}