An automatic Bitcoin arbitrage trading system that scans multiple exchanges for price differences and executes trades.
R2 Bitcoin Arbitrager is an automated trading system that exploits price differences (arbitrage) of Bitcoin across multiple exchanges. It scans exchanges every few seconds, identifies profitable spreads, and executes simultaneous buy/sell orders to capture risk-free profits. The system is built with Node.js and TypeScript, offering both web and console interfaces for monitoring and control.
Cryptocurrency traders and developers looking to automate arbitrage strategies across Japanese and international Bitcoin exchanges, with technical skills to configure API keys and manage server deployments.
Developers choose R2 for its pluggable architecture, concurrent exchange handling, and extensive configurability—allowing customization of profit thresholds, risk parameters, and broker stability rules. It’s a self-hosted, open-source alternative to commercial trading bots, with support for real-time analytics and notifications via Slack/LINE.
R2 Bitcoin Arbitrager is an automatic arbitrage trading system powered by Node.js + TypeScript.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The pluggable architecture allows adding new exchanges via npm packages, such as the bitflyer-fx plugin, making it extensible beyond the default Japanese-focused list.
All API calls to exchanges are sent and handled concurrently, as stated in the architecture overview, ensuring efficient monitoring and execution for speed.
Users can update trading parameters in real-time using JavaScript scripts, enabling adaptive profit thresholds based on spread statistics for flexible strategy adjustments.
The stability tracker automatically disables brokers with high API failure rates, maintaining system reliability without manual intervention, as detailed in the config.
Configurable actions for partially filled orders—such as cancel, reverse, or proceed—help manage risk effectively, with options detailed in the onSingleLeg config.
Default support is limited to Japanese exchanges like bitFlyer and Coincheck, requiring additional plugin development for international markets, which adds overhead.
Setting up involves detailed JSON configuration, API key management, and understanding numerous parameters like minTargetProfitPercent, which can be daunting for non-developers.
With a default iteration interval of 3 seconds and Node.js runtime, it may not suit high-frequency arbitrage strategies needing faster response times, as noted in the how-it-works section.
Key documentation is linked in Japanese on Qiita, and while the README is in English, this could limit accessibility for non-Japanese speakers seeking deeper insights.