Backtest adalah eksperimen terkontrol. Agar hasilnya berguna, command yang dipakai harus dapat dijalankan ulang dengan strategi, konfigurasi, data, dan periode yang sama.
Command Backtest Dasar
freqtrade backtesting \
--config user_data/config.json \
--userdir user_data \
--strategy EmaTrendStarter \
--timerange 20220101-20251231 \
--cache noneParameter tersebut menentukan sumber konfigurasi, lokasi strategi, nama class, periode pengujian, dan penggunaan cache.
Tentukan Timerange Secara Eksplisit
Tanpa --timerange, hasil dapat berubah setiap kali data diperbarui. Gunakan format tanggal yang jelas:
--timerange 20220101-20251231Perhatikan awal efektif setelah startup candle. Untuk perbandingan versi, gunakan timerange, data, config, dan versi Freqtrade yang sama.
Timeframe Utama dan Detail
Timeframe biasanya berasal dari strategi, tetapi dapat dioverride:
--timeframe 30mGunakan timeframe detail untuk simulasi intrabar:
--timeframe-detail 5mIni penting ketika stoploss dan take-profit bisa tersentuh pada candle utama yang sama. Detail 5 menit memberi urutan yang lebih baik daripada hanya OHLC candle 30 menit, walaupun tetap bukan simulasi tick-by-tick.
Modal Awal, Stake, dan Posisi Maksimum
Tiga parameter ini memengaruhi hasil secara langsung:
--dry-run-wallet 1000 \
--stake-amount 50 \
--max-open-trades 3Jika strategi memakai stake dinamis, modal awal juga memengaruhi compounding dan batas minimum order. Jangan membandingkan dua hasil dengan modal atau jumlah posisi berbeda tanpa menjelaskannya.
Menentukan Pair
Pair dapat berasal dari config atau diberikan melalui CLI:
--pairs BTC/USDT:USDT ETH/USDT:USDT SOL/USDT:USDTGunakan pair override untuk eksperimen khusus. Untuk baseline, lebih baik menyimpan daftar pair di config agar mudah diaudit.
Fee dan Slippage
Freqtrade dapat memakai fee exchange atau nilai override:
--fee 0.001Fee diterapkan pada entry dan exit. Slippage tidak selalu terwakili secara penuh, sehingga lakukan stress test dengan fee lebih tinggi atau logika harga yang konservatif.
Export Hasil
Simpan transaksi agar analisis tidak hanya bergantung pada tabel terminal:
--export trades \
--backtest-directory user_data/backtest_resultsTambahkan breakdown untuk melihat konsistensi:
--breakdown month yearHasil per bulan sering mengungkap periode lemah yang tersembunyi oleh total return.
Contoh Command Komprehensif
freqtrade backtesting \
--config user_data/config-futures.json \
--userdir user_data \
--strategy MyFuturesStrategy \
--timerange 20220101-20251231 \
--timeframe 30m \
--timeframe-detail 5m \
--dry-run-wallet 1000 \
--max-open-trades 3 \
--cache none \
--export trades \
--breakdown month year \
--logfile user_data/logs/backtest-my-futures-strategy.logJangan menyalin command tanpa memastikan data dan config tersedia.
Memahami Cache
Cache mempercepat eksperimen, tetapi bisa membingungkan ketika strategi atau data baru saja berubah. Gunakan --cache none untuk verifikasi final. Setelah yakin pipeline stabil, cache dapat digunakan untuk iterasi yang memang identik.
Backtest Beberapa Strategi
Freqtrade dapat membandingkan beberapa class:
--strategy-list StrategyV1 StrategyV2Perbandingan harus menggunakan parameter global yang sama. Pastikan setiap strategi mendukung timeframe dan trading mode tersebut.
Kesalahan CLI yang Sering Terjadi
- Nama file dianggap sebagai nama strategi, padahal yang dibutuhkan adalah nama class.
- Config spot digunakan untuk strategi futures.
- Timeframe detail diminta tetapi datanya tidak tersedia.
- Timerange melampaui sejarah sebagian pair.
- Cache lama dibaca setelah perubahan besar.
- Hanya total profit yang dicatat, tanpa menyimpan hasil transaksi.
- Backtest dijalankan pada data yang sama dengan proses Hyperopt lalu disebut out-of-sample.
Catatan Eksperimen
Setiap backtest penting setidaknya mencatat:
- Hash atau versi strategi.
- Versi Freqtrade.
- File config.
- Timerange dan tanggal data.
- Daftar pair.
- Timeframe utama dan detail.
- Modal, fee, stake, dan jumlah posisi.
- Command lengkap.
- Ringkasan hasil serta lokasi file export.
Penutup
CLI memberi kendali dan membuat eksperimen mudah direproduksi. Namun, command yang benar baru menghasilkan angka; artikel selanjutnya membahas cara membaca angka tersebut agar profit tinggi tidak menutupi risiko yang berbahaya.
Bacaan lanjutan
Backtest tidak menjamin performa live. Gunakan hasilnya sebagai bukti eksperimen yang masih harus divalidasi.




