ArbScanner adalah aplikasi bot scanner ringan berbasis command-line (CLI) yang ditulis menggunakan bahasa Go. Aplikasi ini dirancang untuk mendeteksi peluang arbitrase (arbitrage) harga aset kripto secara real-time dengan membandingkan harga di berbagai bursa (exchange).
Saat ini, ArbScanner difokuskan untuk memantau pasangan mata uang BTC-IDR antara dua exchange:
- Indodax
- Tokocrypto (melalui jalur API Binance)
- Real-Time Data Streaming: Mengambil data harga (ticker) secara berkala dari API exchange.
- Arbitrage Detection Engine: Secara otomatis membandingkan harga dari berbagai sumber dan akan memberikan notifikasi log jika mendeteksi perbedaan harga (spread) lebih dari 0.1%.
- Concurrency Setup: Menggunakan Goroutines dan Channels khas Go untuk menjalankan setiap provider secara paralel tanpa saling memblokir (non-blocking).
- Clean Architecture: Terbagi dalam layer
domain,adaptor, danengineagar kode mudah di-maintenance dan ditambahkan exchange baru.
Sebelum menjalankan aplikasi ini, pastikan sistem kamu memiliki:
- Go Environment: Versi Go 1.25.5 atau yang lebih baru.
- VPN / Cloudflare WARP: Karena API Binance sering kali dicegat oleh ISP Indonesia (Internet Positif), kamu diwajibkan untuk menyalakan VPN (seperti Cloudflare WARP /
warp-svc) saat menjalankan aplikasi ini agar koneksi keapi.binance.comtidak error.
-
Clone repositori ini ke komputer lokal kamu.
-
Pastikan VPN atau Cloudflare WARP kamu sudah dalam status Connected.
-
Buka terminal dan arahkan ke root directory project ini.
-
Jalankan perintah berikut untuk memulai scanner:
go run cmd/app/main.go
Project ini menggunakan pendekatan Hexagonal/Clean Architecture:
`/cmd/app`: Berisi `main.go` yang merupakan titik masuk (entry point) aplikasi. Di sinilah semua dependency disatukan.
`/internal/domain`: Berisi kontrak antarmuka (`contract.go`) dan struktur data inti (`entity.go`) seperti MarketTicker.
`/internal/adaptor`: Berisi implementasi spesifik untuk mengambil data dari masing-masing exchange (Indodax, Tokocrypto, dan Mock untuk testing).
`/internal/engine`: Berisi logika bisnis utama (`detector.go`) yang mendengarkan aliran data dan menghitung kalkulasi persentase arbitrase.
Aplikasi ini dibuat murni untuk tujuan edukasi dan pemantauan pasar. Aplikasi belum terhubung ke sistem auto-trading atau eksekusi pesanan. Segala risiko finansial yang timbul dari keputusan perdagangan (trading) berdasarkan log aplikasi ini adalah tanggung jawab pengguna.