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\activate
pip install -r requirements.txt
Anda 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_1
tocondition_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.txt
Status: 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
365
dengan 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