시스템자가 보고크립토Pythonarbitragecryptocurrencygraphstrading

CryptoGraphArb

Using graph algorithms to find arbitrage opportunities

시스템 구조

활용 데이터
Binance가격/거래량 데이터
규칙 / 전략

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

실행

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

에디터 요약

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

저장소robertmartin8/CryptoGraphArb
제작자robertmartin8
스타 / 포크★ 182 / 50
라이선스MIT
최근 업데이트2019-10-14
스냅샷 시점2026-07-08 (아래 README는 이 시점의 사본입니다)

아래는 제3자가 작성·공개한 오픈소스 코드입니다. QuantField는 해당 코드의 동작과 안전성을 보증하지 않으며, 설치·실행 전 코드를 직접 검토하시기 바랍니다.

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.