Bagaimana Saya Menjaga Riset Trading Saya Tetap Jujur
· #research-method #validation #backtesting #systematic-trading #trading-psychology
Saya menjaga riset trading saya tetap jujur lewat proses, bukan lewat tekad. Aturan eksplisit yang bisa saya debug, rantai validasi di mana setiap gerbang membunuh satu jenis rasa percaya diri palsu, catatan tertulis supaya ingatan saya tidak diam-diam mengedit masa lalu, dan kebiasaan memeriksa trade rugi secermat trade untung. Tidak satu pun dari itu memprediksi pasar. Semuanya memperlambat saya, dan justru itu intinya.
Berikut versi kerja dari kebiasaan-kebiasaan itu, termasuk angka yang dihasilkannya dan batas yang ditemukannya.
Kenapa saya menulis aturan yang cukup eksplisit untuk di-debug?
Karena aturan yang tidak bisa saya telusuri adalah aturan yang tidak bisa saya perbaiki.
Aturan yang bersih lebih mudah diuji, lebih mudah dijelaskan, dan lebih mudah di-debug. Saya memilih logika eksplisit di atas intuisi yang samar di mana pun bisa, bukan karena intuisi tidak berguna, tapi karena aturan eksplisit bisa diperbaiki sedangkan perasaan tidak.
Aturan yang bersih juga yang membuat edge autopsy mungkin dilakukan. Ketika sebuah trade buruk terjadi, saya ingin tahu aturan mana yang mengizinkannya dan data apa yang memicunya. Master Volume Profile dibangun dengan cara itu, dengan aturan dan input yang ditulis dalam kode, supaya trade buruk bisa dilacak kembali ke sebuah aturan, bukan ke suasana hati.
Apa yang sebenarnya diberikan sebuah rantai validasi?
Rasa percaya diri tanpa ilusi. Itu keseluruhan imbal hasilnya.
Rantai itu tidak menjanjikan keberhasilan dan tidak menjamin hasil live. Yang dilakukannya adalah memisahkan struktur yang berulang dari keberuntungan yang terjadi sekali. Di dalam Dquants engine yang saya kembangkan, rantainya berjalan dalam urutan tetap: biaya realistis lebih dulu, lalu plateau sensitivitas di mana saya hanya menerima wilayah parameter yang stabil dan menolak puncak tunggal, lalu walk-forward yang dinilai dari fold terburuk bukan dari angka gabungan, lalu Monte Carlo pada return per trade yang diacak, lalu overfitting gate, dan baru setelah itu satu run konfirmasi di MetaTrader 5.
Setiap gerbang membunuh ilusi yang berbeda. Biaya membunuh versi fantasi dari eksekusi. Uji plateau membunuh parameter yang hanya saya temukan karena mencari cukup lama. Fold terburuk membunuh rata-rata yang sebenarnya sedang ditanggung oleh satu tahun yang kebetulan ramah.
Satu konfigurasi gold yang sudah melewati seluruh rantai ini menghasilkan 1.423 trade di atas sekitar 160 juta tick asli dari broker, dibanding minimum statistik 192 trade yang dibutuhkan sebelum matematikanya mau menganggap sebuah hasil serius, dengan profit factor utama sekitar 1,42 (sumber: KPI scorecard XAU M5 milik saya sendiri di repo riset Dquants, bertanggal 2026-07). Semua angka itu adalah backtest, bukan track record live.
Angka yang benar-benar saya pakai untuk merencanakan justru yang kurang enak dilihat. Pada persentil ke-5 dari run Monte Carlo, profit factor itu turun ke sekitar 1,11, dan ekspektasi drawdown yang jujur ada di kisaran 24 persen pada median dan 38 persen pada persentil ke-95. Karena itu catatan riset saya menyebut untuk menghitung ukuran posisi terhadap puncak 30 sampai 40 persen, bukan terhadap kurva yang mulus. Siapa pun yang merencanakan berdasarkan rata-rata sedang merencanakan untuk terkejut di saat paling buruk.
Kenapa saya tidak pernah melewati pertanyaan yang tidak nyaman?
Pertanyaan yang tidak nyaman biasanya justru yang penting.
Apakah sampelnya cukup besar. Apakah hasilnya bertahan lintas regime. Apakah ini cuma kantong keberuntungan dalam sejarah. Apakah ini masih hidup setelah biaya. Pertanyaan-pertanyaan itu menyebalkan diajukan saat kurvanya sudah terlihat bagus, dan justru saat itulah mereka paling penting.
Yang paling sering saya tanyakan adalah yang paling sederhana: apakah edge ini masih ada setelah eksekusi realistis? Saya menjawabnya dengan menaikkan tekanan spread dan slippage di dalam engine lalu memeriksa apakah expectancy masih positif di sisi seberangnya.
Kadang jawabannya tidak, dan itu pun berguna. Pada 2024, sebuah regime berbiaya tinggi yang memang tidak dirancang untuk ditangani edge ini, uji dengan fill nyata berdarah cukup parah. Hasil itu sengaja saya simpan di dokumen. Batas yang saya ketahui lebih dulu adalah pengalaman yang sama sekali berbeda dari batas yang menyergap saat uang sungguhan sedang dipertaruhkan.
Apa yang dihitung sebagai sinyal awal, dan apa yang tidak?
Sinyal awal berarti ada sesuatu yang layak diamati dengan cermat. Itu tidak berarti perjalanannya sudah selesai.
Menjanjikan itu bagus. Terbukti itu lebih bagus. Sebuah sinyal awal tetap berguna persis selama saya menyimpannya di kategori yang benar, dan ia berubah jadi beban begitu saya menaikkannya jadi bukti. Pembedaan itulah yang mencegah sebuah arah riset yang layak berubah jadi keputusan yang dikunci terlalu dini.
Saya tetap optimistis, dan optimistis tidak sama dengan yakin. Prosesnya terus membaik, dan itu memperbaiki peluang. Peluang adalah satu-satunya yang tersedia di sini.
Kenapa saya mencatat semuanya, termasuk yang gagal?
Karena ingatan tidak bisa diandalkan, dan trading sangat kejam terhadap ingatan.
Kalau saya tidak mencatat asumsi, keputusan, dan parity gap saat kejadiannya, nanti saya hanya akan mengingat versi kebenaran yang lebih nyaman. Dokumentasi adalah bagian dari metode riset, bukan pekerjaan administratif.
Karena itu hasil negatif diperlakukan sebagai modal permanen di stack saya. Setiap ide yang sudah difalsifikasi dicatat lengkap dengan buktinya dan tidak dikejar ulang tanpa alasan struktural yang benar-benar baru, misalnya tier data baru atau clock baru, bukan ide yang sama dengan parameter berbeda.
Review terstruktur adalah kebiasaan yang sama tapi diarahkan ke tiap trade: log, tangkapan layar, metrik, konteks. Tanpa itu, terlalu mudah untuk hanya mengingat yang menang. Meninjau maximum adverse excursion pada trade rugi adalah sumber sebagian besar perbaikan saya berikutnya, karena di situlah kerugian statistik yang normal bisa dibedakan dari kesalahan proses.
Apa yang sebenarnya saya hindari?
Tiga hal: terlalu percaya diri, overfitting, dan terlalu banyak janji. Masing-masing bisa merusak kerja berbulan-bulan dengan cepat.
Jadi skeptisisme itu saya taruh di dalam proses, bukan di suasana hati saya hari itu. Ada overfitting gate dan model biaya realistis di dalam engine, dan di sisi eksekusi, Expert Advisor MetaTrader 5 hanya bertindak sesuai pengaturan risiko yang sudah dikonfigurasi pengguna sebelumnya, termasuk veto volatilitas dan batas risiko harian maksimum. Tidak ada satu lapis pun yang cukup sendirian. Masing-masing menghapus satu cara spesifik saya membohongi diri sendiri.
Di bawah semuanya ada satu pertanyaan yang terus saya ajukan: ini sinyal, atau cerita yang saya karang sendiri? Berpikir bersih adalah keterampilan trading, karena sebuah cerita bisa bertahan sepanjang malam kerja tanpa menghasilkan informasi baru sama sekali.
Kenapa kemajuan kecil tetap berarti?
Karena kerja yang tahan lama dibangun dari situ. Ada minggu di mana kemajuannya cuma satu keputusan yang lebih baik, satu uji yang lebih bersih, satu penolakan yang lebih jujur. Kemajuan tipis jadi bermakna begitu ia berulang cukup sering.
Pekerjaan ini terasa sulit karena memang sulit, dan kesulitan biasanya tanda bahwa saya akhirnya sedang melihat masalah yang benar. Yang paling berat sejauh ini adalah pindah dari engine berbasis bar ke engine tick murni, supaya pengujiannya berhenti berbohong tentang eksekusi yang sebenarnya tidak mungkin terjadi.
Itu juga alasan saya menjaga sudut pandang jangka panjang. Satu bulan bagus tidak banyak bicara. Saya ingin melihat apakah sebuah sistem bertahan lintas regime, lintas tingkat biaya, dan melewati periode panjang yang membosankan, karena itu uji kualitas yang jauh lebih baik daripada satu sampel pendek yang tajam.
Pertanyaan yang sering diajukan
Apa itu rantai validasi dalam systematic trading? Itu urutan uji yang tetap dan berurutan yang harus dilewati sebuah ide sebelum dipercaya. Setiap gerbang dirancang untuk membunuh mode kegagalan yang berbeda, bukan untuk mengonfirmasi hasilnya. Rantai saya terdiri dari biaya, plateau sensitivitas, walk-forward, Monte Carlo, overfitting gate, dan satu run konfirmasi di MetaTrader 5.
Berapa banyak trade yang dibutuhkan sebuah backtest agar berarti? Cukup banyak sampai keberuntungan saling meniadakan, dan ambangnya sebaiknya dihitung, bukan ditebak. Minimum track record length bergantung pada distribusi return strategi itu sendiri, jadi strategi yang lebih berisik butuh sampel lebih besar untuk mengatakan hal yang sama. Untuk konfigurasi gold saya, minimumnya 192 trade sementara sampel tervalidasinya 1.423 trade, sekitar tujuh kali lipat ambangnya (backtest, scorecard 2026-07).
Apakah Master Volume Profile punya track record live? Belum, dan saya tidak akan menyiratkan sebaliknya. Semua yang dipublikasikan sejauh ini adalah riset: backtest dan satu run konfirmasi MetaTrader 5 di atas tick asli broker, bukan hasil live yang diaudit. Perlakukan setiap angka yang saya kutip sebagai bukti historis tentang sebuah hipotesis, bukan sebagai prediksi.
Apa itu overfitting gate? Itu pemeriksaan statistik yang menanyakan apakah pemenang sebuah pencarian parameter masih terlihat bagus setelah memperhitungkan berapa banyak kandidat yang dicoba. Mencari cukup lama selalu menghasilkan sesuatu yang terlihat mengesankan, jadi gerbang ini butuh konteks pencarian yang sebenarnya, termasuk jumlah percobaan. Di stack saya, deflated Sharpe ratio 0,95 ke atas lolos, 0,90 sampai 0,95 adalah peringatan yang harus saya nyatakan terbuka, dan di bawah 0,90 gagal.
Kenapa menilai walk-forward dari fold terburuk, bukan dari rata-rata? Karena yang harus dijalani adalah fold terburuk, bukan fold rata-rata. Angka gabungan bisa menyembunyikan periode di mana strategi meleset jauh, tertutupi oleh satu rentang sejarah yang kebetulan ramah. Cara ini juga cocok dengan cara drawdown benar-benar datang, yaitu sekaligus, bukan tersebar merata.
Dalam riset saya sendiri, drawdown berapa yang saya rencanakan? Persentil ke-95, bukan median. Backtest split-window yang ramah untuk konfigurasi gold saya bisa menunjukkan angka sekitar 10 persen, dan justru angka seperti itu yang menjerumuskan banyak orang. Distribusi Monte Carlo menempatkan ekspektasi yang jujur lebih dekat ke 24 persen pada median dan 38 persen pada persentil ke-95, jadi catatan saya menyebut ukuran posisi dihitung terhadap puncak 30 sampai 40 persen.
Kenapa meninjau trade rugi, bukan trade untung? Karena trade rugi membawa lebih banyak informasi per trade. Trade untung hanya bilang setup itu bekerja sekali, sedangkan trade rugi bilang di mana aturannya rapuh dan apakah kerugian itu variasi normal atau kesalahan proses. Maximum adverse excursion pada trade rugi adalah kolom paling berguna di log saya.
Apakah semua ini menghilangkan risiko? Tidak. Semua ini hanya menghapus beberapa cara spesifik untuk salah, dan itu klaim yang jauh lebih kecil. Trading mengandung risiko termasuk risiko kerugian, semua angka di atas bersifat historis, dan sebanyak apa pun validasi tidak mengubah hipotesis menjadi kepastian.
Ditulis oleh KenKem, seorang software engineer dan founder dengan dua puluh tahun pengalaman, yang sedang belajar quantitative trading secara terbuka dan mempublikasikan prosesnya, termasuk penolakan-penolakannya.
Artikel ini disusun dari post 37 sampai 48 dalam seri build-log KenKem. Hanya untuk tujuan edukasi. Bukan nasihat keuangan. Semua angka yang dikutip adalah hasil backtest, bukan track record live. Kinerja masa lalu tidak menjamin hasil di masa depan.