Hyperopt membantu mencari parameter strategi dengan mengevaluasi banyak kombinasi. Masalahnya, mesin optimasi sangat pandai menemukan noise. Tanpa disiplin, hasil terbaik di data training justru menjadi strategi terburuk saat live.
Apa yang Dioptimalkan?
Parameter dapat mencakup periode indikator, ambang entry, ROI, stoploss, trailing, atau jumlah posisi. Contoh:
buy_rsi = IntParameter(35, 65, default=50, space="buy")
buy_adx = IntParameter(10, 40, default=20, space="buy")Rentang harus memiliki alasan. Search space terlalu luas meningkatkan peluang menemukan kombinasi kebetulan dan membutuhkan lebih banyak eksperimen.
Loss Function
Hyperopt meminimalkan loss. Pilihan loss menentukan definisi “terbaik”. Hanya mengejar profit dapat menghasilkan drawdown besar atau trade sangat sedikit.
Loss yang sehat mempertimbangkan kombinasi:
- Return.
- Drawdown.
- Jumlah trade.
- Konsistensi.
- Durasi.
- Risiko.
Gunakan loss bawaan yang sesuai atau buat custom loss dengan dokumentasi yang jelas. Jangan menyembunyikan preferensi risiko di formula yang tidak dapat dijelaskan.
Pisahkan Training dan Testing
Contoh pembagian waktu:
- Training: 2022–2024.
- Validation: 2025.
- Final holdout: 2026.
Jalankan Hyperopt hanya pada training. Gunakan validation untuk memilih keluarga parameter yang stabil, bukan mengoptimalkan ulang berulang kali. Holdout dibuka terakhir sebagai pemeriksaan jujur.
Jika holdout terus digunakan untuk memperbaiki strategi, ia sudah berubah menjadi training data.
Command Hyperopt
freqtrade hyperopt \
--config user_data/config.json \
--userdir user_data \
--strategy MyStrategy \
--hyperopt-loss MultiMetricHyperOptLoss \
--spaces buy sell roi stoploss \
--timerange 20220101-20241231 \
--epochs 300 \
--job-workers 4Nama loss dan opsi dapat berubah antarversi. Jangan menggunakan semua core jika mesin juga menjalankan layanan penting; Hyperopt dapat menghabiskan CPU dan memori.
Jangan Mengoptimalkan Semuanya Sekaligus
Urutan yang lebih terkendali:
1. Bekukan struktur entry dan exit.
2. Optimalkan sedikit parameter entry.
3. Uji stabilitas pada validation.
4. Optimalkan exit atau risk layer terpisah.
5. Uji keseluruhan pada holdout.
Terlalu banyak dimensi membuat interpretasi sulit dan menghasilkan interaksi parameter yang rapuh.
Memilih Epoch
Lebih banyak epoch bukan otomatis lebih baik. Jumlah epoch perlu sebanding dengan dimensi search space. Pantau apakah hasil terbaik terus berubah drastis atau mulai stabil.
Jalankan beberapa seed atau sesi. Jika setiap sesi menghasilkan parameter ekstrem yang berbeda tetapi skor hampir sama, pilih area parameter yang lebih stabil daripada satu titik terbaik.
Plateau Lebih Baik daripada Puncak Tajam
Misalnya RSI 49–54 memberi hasil serupa, sedangkan RSI 52 sedikit paling tinggi. Area tersebut lebih meyakinkan daripada skenario ketika hanya RSI 52 profit dan nilai di sekitarnya rugi.
Uji tetangga parameter. Strategi live menghadapi data yang tidak persis sama dengan training, sehingga parameter yang toleran terhadap perubahan kecil lebih diinginkan.
Waspadai Jumlah Trade
Hyperopt dapat menemukan aturan sangat selektif dengan beberapa trade besar. Tetapkan jumlah minimum trade yang masuk akal. Sampel kecil membuat loss mudah dimanipulasi oleh outlier.
Periksa apakah hasil tetap baik setelah trade terbaik dihilangkan.
Overfit per Pair
Parameter berbeda untuk setiap pair dapat dibenarkan jika struktur market berbeda, tetapi jumlah kebebasannya meningkat cepat. Mintalah alasan ekonomi atau mikrostruktur, bukan hanya karena backtest membaik.
Validasi parameter pair pada periode lain dan pair serupa. Jika tidak transfer, mungkin yang dipelajari hanyalah sejarah unik.
Setelah Hyperopt
Jangan langsung live. Lakukan:
- Backtest bersih dengan
--cache none. - Validation dan final holdout.
- Breakdown pair, tag, bulan, dan tahun.
- Fee/slippage stress test.
- Lookahead dan recursive analysis.
- Walk-forward.
- Dry-run.
Simpan file parameter, command, timerange, seed, versi strategi, dan versi Freqtrade.
Checklist Hyperopt Sehat
- Search space kecil dan masuk akal.
- Loss menghukum risiko, bukan hanya mengejar profit.
- Training terpisah dari validation dan holdout.
- Trade count memadai.
- Parameter tidak berada terus-menerus di batas rentang.
- Nilai tetangga tetap layak.
- Hasil konsisten pada beberapa sesi.
- Final holdout belum digunakan untuk tuning.
Penutup
Hyperopt bukan alat penemu profit otomatis. Ia adalah mesin pencari yang membutuhkan batas, tujuan, dan validasi. Hasil yang sedikit lebih rendah tetapi stabil biasanya lebih bernilai daripada satu epoch spektakuler.
Artikel berikutnya membahas walk-forward testing untuk melihat apakah proses optimasi dapat bertahan ketika waktu benar-benar bergerak maju.
Bacaan lanjutan
Optimasi pada data historis menambah risiko overfitting. Selalu sisakan data yang tidak disentuh selama pengembangan.




