Simple Bitcoin trading strategy analysis menggunakan indikator on-chain Cicada v14. Project ini menganalisis data Bitcoin dan mengidentifikasi sinyal entry optimal berdasarkan 4 metrik utama, kemudian melakukan backtest dengan holding period 365 hari.
- Fitur Utama
- Persyaratan Sistem
- Instalasi
- Persiapan Data
- Cara Penggunaan
- Output Files
- Strategi Cicada v14
- Troubleshooting
- β Analisis 4 metrik on-chain Bitcoin
- β Identifikasi sinyal entry optimal
- β Backtest dengan holding period 365 hari
- β Export hasil ke format CSV
- β Simple dan mudah digunakan
- Python 3.8+ (Recommended: Python 3.9 atau lebih baru)
- pandas >= 1.3.0
- numpy >= 1.21.0
git clone https://github.com/amrikarisma/bitcoin.git
cd bitcoin# Untuk macOS/Linux
python3 -m venv .venv
source .venv/bin/activate
# Untuk Windows
python -m venv .venv
.venv\Scripts\activatepip install -r requirements.txtAnda memerlukan 4 file CSV dengan data Bitcoin on-chain metrics. Letakkan file-file berikut di folder data/:
-
bitcoin-long-term-holder-realized-price.csv- Kolom:
DateTime,Realized Price LTH,Bitcoin Price
- Kolom:
-
bitcoin-realized-hodl-ratio-(rhodl).csv- Kolom:
DateTime,RHODL Ratio,Bitcoin Price
- Kolom:
-
bitcoin-mvrv-z-score (1).csv- Kolom:
DateTime,MVRV Z Score,Bitcoin Price
- Kolom:
-
bitcoin-puell-multiple.csv- Kolom:
DateTime,Puell Multiple,Bitcoin Price
- Kolom:
DateTime,Metric Name,Bitcoin Price
2011-09-29,123.45,0.05
2011-09-30,124.67,0.06
...Data dapat diperoleh dari:
python main.py- Pastikan data CSV sudah ada di folder
data/ - Jalankan analisis:
python main.py
- Tunggu proses selesai (biasanya 10-30 detik)
- Cek hasil di folder
results/
π CICADA v14 ANALYSIS
==============================
π Loading data...
β
Data loaded
π Calculating signals...
β
Found 80 signals
π Exporting...
π Backtesting...
β
80 trades, Average Return: 88.6%
β
Done! Check results/ folder
Setelah menjalankan analisis, Anda akan mendapatkan 4 file CSV di folder results/:
Deskripsi: Data harian lengkap dengan semua indikator dan sinyal
Isi: ~5,000+ baris data dari 2011-2025
Kolom:
DateTime- Tanggallth_realized_price- LTH Realized Priceclose- Bitcoin Pricerhodl_ratio- RHODL Ratiomvrv_z_score- MVRV Z-Scorepuell_multiple- Puell Multiplecondition_1tocondition_4- Status setiap kondisientry_signal- True jika sinyal entry
Deskripsi: Hanya tanggal dengan sinyal entry
Isi: ~80 baris entry signals
Kolom: Sama seperti cicada_signals.csv tapi hanya baris dengan entry_signal = True
Deskripsi: Hasil backtest untuk setiap trade
Isi: ~80 baris hasil trading
Kolom:
entry_date- Tanggal belientry_price- Harga beliexit_date- Tanggal jual (1 tahun kemudian)exit_price- Harga jualreturn_percentage- Return dalam persen
Deskripsi: Statistik ringkasan dan analisis tambahan
Isi: ~95 baris berbagai statistik
Cicada v14 adalah strategi buy-and-hold yang mengidentifikasi momen optimal untuk membeli Bitcoin berdasarkan kondisi "extreme undervaluation" dari 4 metrik on-chain.
Sinyal entry muncul ketika SEMUA kondisi berikut terpenuhi:
-
Bitcoin Price < LTH Realized Price
- Bitcoin diperdagangkan di bawah harga rata-rata yang dibeli oleh long-term holders
-
RHODL Ratio < 10th Percentile
- RHODL ratio berada di level terendah secara historis (undervalued)
-
MVRV Z-Score < 0.5
- Market value relatif terhadap realized value sangat rendah
-
Puell Multiple < 0.5
- Pendapatan miner sangat rendah (miner capitulation)
- Holding Period: 365 hari (1 tahun)
- Exit Strategy: Otomatis jual setelah 1 tahun
- Filosofi: Buy during extreme fear, hold with discipline
Berdasarkan backtest data 2011-2025:
- Total Signals: 80 entry opportunities
- Average Return: 88.6% per trade
- Win Rate: 100% (semua trade profitable)
- Best Trade: +182.5% return
- Worst Trade: +29.4% return
Penyebab: File CSV tidak ditemukan atau format salah
Solusi:
- Pastikan 4 file CSV ada di folder
data/ - Cek nama file sesuai dengan yang diperlukan
- Pastikan format CSV benar dengan kolom yang sesuai
Penyebab: Data tidak memenuhi kondisi entry signal
Solusi:
- Pastikan data memiliki range tanggal yang cukup (minimal 2011-2025)
- Cek kualitas data (tidak ada nilai kosong berlebihan)
Penyebab: Dependencies belum terinstall
Solusi:
pip install pandas numpy
# atau
pip install -r requirements.txtStatus: Warning ini tidak mempengaruhi hasil
Akan diperbaiki: Update kode untuk kompatibilitas pandas versi baru
Untuk mengubah holding period dari 365 hari:
- Edit file
src/cicada_strategy.py - Cari baris:
future_date = entry_date_dt + pd.Timedelta(days=365) - Ganti
365dengan nilai hari yang diinginkan
Untuk memodifikasi kondisi entry signal:
- Edit file
src/cicada_strategy.py - Cari method
calculate_entry_signals() - Modifikasi kondisi pada bagian:
condition_1 = signals_df[btc_price_column] < signals_df['lth_realized_price'] condition_2 = signals_df['rhodl_ratio'] < rhodl_10th_percentile condition_3 = signals_df['mvrv_z_score'] < 0.5 condition_4 = signals_df['puell_multiple'] < 0.5
bitcoin/
βββ main.py # Script utama
βββ requirements.txt # Dependencies
βββ README.md # Dokumentasi ini
βββ data/ # Folder input CSV
β βββ bitcoin-long-term-holder-realized-price.csv
β βββ bitcoin-realized-hodl-ratio-(rhodl).csv
β βββ bitcoin-mvrv-z-score (1).csv
β βββ bitcoin-puell-multiple.csv
βββ results/ # Folder output CSV
β βββ cicada_signals.csv
β βββ cicada_entry_signals.csv
β βββ cicada_backtest.csv
β βββ cicada_summary.csv
βββ src/ # Source code
βββ __init__.py
βββ cicada_strategy.py # Logic utama strategi
βββ data_manager.py # Data loader
βββ utils.py # Utilities
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Amri Karisma
- GitHub: @amrikarisma
- Project: Bitcoin Cicada v14 Strategy