SystemSelf reportedCryptoPythonarbitragecryptocurrencygraphstrading

CryptoGraphArb

Using graph algorithms to find arbitrage opportunities

System Structure

Data Used
Binance가격/거래량 데이터
Rules / Strategy

저장소별 전략/실행 조건 확인 필요

Execution

주문 실행은 사용자가 별도 통합/설정

Editor Summary

저장소 설명과 공개 메타데이터 기준으로 Python 기반 구현, 거래소 API/프레임워크, 차익거래 성격의 프로젝트로 파악했습니다. 확인 근거는 README, 저장소 토픽, 저장소 설명, GitHub 지표, 파이프라인 필드이며, 주요 데이터는 Binance, 가격/거래량 데이터입니다. 전략/실행 조건은 저장소별 문서와 코드 확인이 필요하며, 실행 방식은 "주문 실행은 사용자가 별도 통합/설정"라고 보수적으로 기록했습니다. GitHub 지표는 별 182개, 포크 50개입니다.

Repositoryrobertmartin8/CryptoGraphArb
Creatorrobertmartin8
Stars / Forks★ 182 / 50
LicenseMIT
Last Updated2019-10-14
Snapshot Date2026-07-08 (README below is a copy from this date)

This is third-party open-source code. QuantField does not guarantee its behavior or safety. Review the code before installing or running it.

README

CryptoGraphArb

This is the supporting code for my post on using graph theory to discover arbitrage opportunities in a cryptocurrency market.

Getting started

To run it, first sign up to CryptoCompare to get a free API key. Then, you can either replace it after the equals sign at the top of cryptocompare_scraper.py, or create a new text file named API_KEY.txt and paste it there directly.

Then, install dependencies with:

pip install -r requirements.txt

Lastly, run the code:

python cryptocompare_scraper.py
python graph_arbitrage.py

Overview

  • cryptocompare_scraper.py downloads the raw data, creating pairs_list.json, binance_data/ and snapshot.csv.
  • graph_arbitrage.py processes this data and puts it into a graph, before running Bellman-Ford to find arbitrage opportunities.

Your turn

Here's a brief list of a few ways that you could extend this project. Some are trivial, some are not!

  • Model transaction fees. This is literally one line of code, multiplying the arbitrage value by e.g 0.999 for each element in the path.
  • Download data from more exchanges. graph_arbitrage.py operates completely independently of the data collection, it just needs an adjacency matrix.
  • Automatically run the code at fixed intervals to continuously look for arbitrage.
  • Modify the Bellman-Ford so that it doesn't have to recompute everything when some weights change.