Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ignored_symbols param to run_detection #8

Merged
merged 1 commit into from
Jan 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.2] - 2024-01-08
### Added
- `ignored_symbols` param to `run_detection`

## [1.0.1] - 2023-10-18
### Fixed
- Added MANIFEST.in to fix PYPI installation
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<img src="illustration.jpeg" width="250px" height="250px" alt="Triangular illustration">
</p>

# Triangular Arbitrage by OctoBot [1.0.1](https://github.com/Drakkar-Software/Triangular-Arbitrage/blob/master/CHANGELOG.md)
# Triangular Arbitrage by OctoBot [1.0.2](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)

Expand Down
2 changes: 1 addition & 1 deletion triangular_arbitrage/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
PROJECT_NAME = "OctoBot-Triangular-Arbitrage"
VERSION = "1.0.1"
VERSION = "1.0.2"
14 changes: 8 additions & 6 deletions triangular_arbitrage/detector.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@ def is_delisted_symbols(exchange_time, ticker, threshold = 1 * constants.DAYS_TO
ticker_time = ticker['timestamp']
return not (exchange_time - ticker_time <= threshold)

def get_last_prices(exchange_time, tickers):
def get_last_prices(exchange_time, tickers, ignored_symbols):
return [
ShortTicker(symbol=get_symbol_from_key(key),
last_price=tickers[key]['close'])
for key, _ in tickers.items()
if tickers[key]['close'] is not None and not is_delisted_symbols(exchange_time, tickers[key])
if tickers[key]['close'] is not None
and not is_delisted_symbols(exchange_time, tickers[key])
and str(get_symbol_from_key(key)) not in ignored_symbols
]

def get_best_opportunity(tickers: List[ShortTicker]) -> Tuple[List[ShortTicker], float]:
Expand Down Expand Up @@ -101,12 +103,12 @@ async def get_exchange_data(exchange_name):
await exchange.close()
return tickers, exchange_time

async def get_exchange_last_prices(exchange_name):
async def get_exchange_last_prices(exchange_name, ignored_symbols):
tickers, exchange_time = await get_exchange_data(exchange_name)
last_prices = get_last_prices(exchange_time, tickers)
last_prices = get_last_prices(exchange_time, tickers, ignored_symbols)
return last_prices

async def run_detection(exchange_name):
last_prices = await get_exchange_last_prices(exchange_name)
async def run_detection(exchange_name, ignored_symbols=None):
last_prices = await get_exchange_last_prices(exchange_name, ignored_symbols or [])
best_opportunity, best_profit = get_best_opportunity(last_prices)
return best_opportunity, best_profit
Loading