KenKem Journal

Mengapa Sebagian Besar Ide Trading Saya Berakhir Ditolak

ยท #research-method #systematic-trading #backtesting #trading-psychology #volume-profile

Saya tidak mulai membangun research stack karena ingin satu ide trading baru lagi. Saya mulai karena sudah lelah dengan keputusan yang tidak konsisten.

Sekitar 20 tahun sebagai software engineer, sekitar 8 tahun trading sungguhan dengan uang sungguhan, dan kombinasi itu membuat satu hal jadi sangat jelas: kalau prosesnya lemah, hasilnya juga akan lemah. Jadi yang sebenarnya saya bangun bukanlah sebuah strategi. Yang saya bangun adalah proses yang bisa memberi tahu saya secara jujur dan berulang kapan saya sedang keliru. Sebagian besar keluaran dari proses itu adalah penolakan. Justru di situlah intinya.

Kenapa mulai dari penolakan, bukan dari penemuan?

Masalah sebenarnya tidak pernah soal mencari titik entry. Titik entry mudah ditemukan dan mudah membuat kita jatuh cinta. Masalah yang lebih besar adalah apakah saya bisa mempertahankan proses di bawah tekanan, tepat ketika emosi paling nyaring dan godaan untuk melanggar rencana paling kuat.

Dari situ muncul pengamatan pertama yang berani saya sebut pengamatan quant sungguhan: kalau perilaku saya berubah saat tertekan, edge-nya mungkin lebih lemah daripada yang terlihat. Edge yang hanya bertahan ketika saya tenang bukanlah edge, itu cuma suasana hati.

Rasa bersemangat bukan strategi. Jadi saya memindahkan beban dari kemauan ke struktur. Bukan untuk menghapus penilaian manusia, tapi supaya penilaian yang buruk tidak lagi memegang kemudi. Diskresi tanpa struktur berubah jadi noise. Struktur tanpa disiplin juga gagal. Saya butuh keduanya, dan strukturnya harus datang lebih dulu.

Apa yang pertama kali membuat saya meragukan data saya sendiri?

Sebelum bisa menguji apa pun, saya harus menjawab sekumpulan pertanyaan yang terdengar terlalu mendasar untuk penting, padahal justru sangat menentukan.

Data ini sebenarnya mewakili apa? Apa itu quote tick? Apa itu volume bursa yang sebenarnya? Mana yang cuma proxy yang berdiri menggantikan sesuatu yang tidak bisa saya lihat?

Dalam data trading, memilih field yang salah bisa memproduksi edge palsu yang tampak sangat meyakinkan. Memilih field yang tepat dan menafsirkannya dengan benar bisa menghemat berbulan-bulan kerja. Itulah sebabnya Dquants, engine yang saya kembangkan sendiri, bekerja di atas tick data asli dan memisahkan quote tick dari volume bursa asli sebagai dua field berbeda. Sebuah proxy tidak akan pernah diam-diam naik pangkat jadi data asli.

Kalau datanya lemah, kesimpulannya juga lemah, secanggih apa pun lapisan analisis di atasnya. Kebenaran dulu, sisanya belakangan.

Sebuah ide harus lolos apa saja sebelum layak disebut bukti?

Saya tidak mau opini yang menyamar sebagai fakta. Jadi sebuah ide harus bertahan melewati variasi sebelum saya anggap serius:

  • sesi pasar yang berbeda
  • tahun yang berbeda
  • asumsi biaya yang berbeda
  • rezim pasar yang berbeda

Itu filter robustness pertama, dan memang sengaja dibuat tidak ramah. Di dalam Dquants, sebuah ide dijalankan out-of-sample dan walk-forward melintasi berbagai tahun dan sesi sebelum ia pantas mendapat perhatian saya. Kalau tidak lolos, saya anggap lemah. Itu bukan pesimisme, itu cuma standar.

Loop-nya sendiri sama sekali tidak glamor. Uji, ukur, tolak, perbaiki, uji lagi. Sebagian besar waktu jawabannya adalah tidak. Itu bukan tanda loop-nya gagal, itu tanda loop-nya sedang bekerja. Tujuan saya bukan cepat benar, tapi benar karena alasan yang benar.

Kenapa backtest yang bagus pun masih belum cukup?

Backtest itu pos pemeriksaan, bukan garis akhir. Ada tiga hal yang berulang kali mengubah hasil yang menjanjikan menjadi nol:

Kalau hasilnya mengabaikan biaya trading yang sebenarnya, itu fantasi. Khususnya pada sistem berdurasi pendek, spread, slippage, komisi dan efek sesi bukan catatan kaki di pinggir strategi, semua itu bagian dari sinyalnya. Kalau sebuah setup hanya bekerja sebelum biaya, berarti ia tidak benar-benar bekerja.

Kalau hasilnya bergantung pada kantong parameter yang sempit, ia rapuh. Puncak tunggal di sebuah heatmap biasanya cuma noise yang sedang menyamar.

Kalau hasilnya lenyap di luar sampel, berarti sejak awal ia memang tidak pernah cukup kuat.

Jadi kekuatan backtest itu perlu, tapi jauh dari cukup. Di dalam Dquants, sebuah hasil baru dihitung setelah ia bertahan out-of-sample dan walk-forward, dengan komisi, spread dan slippage sudah dikurangkan di atas tick data asli.

Kenapa saya menyimpan catatan ide yang gagal?

Bagian ini dulu saya remehkan. Hal tersulit dalam riset adalah menolak ide yang sebenarnya sangat ingin saya buktikan benar, dan hal tersulit kedua adalah menjaga supaya ide itu tetap tertolak.

Tanpa catatan, sebuah hipotesis yang sudah gagal akan kembali enam bulan kemudian dengan nama yang sedikit berbeda, dan saya menghabiskan minggu-minggu yang sama untuk membuktikan hal yang sama. Karena itu engine saya menyimpan registry berisi hipotesis yang sudah ditolak. Ide yang gagal tetap tinggal di sana.

Setiap penolakan adalah lapisan pelindung kecil dari menipu diri sendiri. Dalam kerja quant, itu bukan kemunduran, itu bentuk manajemen risiko. Saya lebih percaya pada sistem yang berani bilang tidak, dan lebih percaya pada sekumpulan hasil kalau saya bisa melihat apa saja yang dibuang untuk sampai ke sana.

Kenapa harus membangun infrastrukturnya?

Alat yang baik tidak menciptakan edge. Alat yang baik membuat kejujuran jadi lebih mudah, dan itu hal yang berbeda sekaligus jauh lebih berguna.

Saya ingin workflow yang bisa menyimpan, menguji, membandingkan dan memutar ulang ide dengan cara yang sama setiap kali. Riset jadi lebih mudah ketika datanya rapi. Validasi jadi lebih kuat ketika metriknya konsisten. Kepercayaan tumbuh ketika sebuah hasil bisa direproduksi kapan saja.

Pengamatan yang akhirnya mendorong saya benar-benar membangunnya: kalau saya tidak bisa memutar ulang sebuah hasil dengan bersih, kemungkinan besar saya belum cukup memahaminya. Itulah seluruh alasan Dquants ada sebagai engine Python dan C++ di atas DuckDB, bukan sekadar folder berisi skrip sekali pakai.

Di mana posisi struktur pasar?

Mengerjakan Master Volume Profile, pendekatan volume profile saya sendiri untuk setup berdurasi pendek di M3 dan M5, memaksa saya mengajukan pertanyaan di kelas yang lebih baik. Alih-alih bertanya harga sedang naik atau turun, saya mulai bertanya di mana pasar menerima nilai, di mana harga sedang ditolak, dan seperti apa konteks lelang di sekitar sebuah pergerakan.

Cara memandang itu lebih berguna daripada membaca bentuk candle, karena struktur sering menjelaskan kenapa sebuah pergerakan berlanjut atau gagal. Tapi cara memandang itu sendiri tidak membuktikan apa-apa. Ide berbasis struktur tetap harus melewati gauntlet yang persis sama dengan ide lainnya, dan cukup banyak di antaranya yang tidak lolos. Konteks membuat sebuah hipotesis layak diuji. Konteks tidak membebaskannya dari pengujian.

Apa kesimpulan jujurnya?

Keluaran dari proses ini sebagian besar adalah kata tidak, dan saya sudah berdamai dengan itu. Metode yang mengatakan kebenaran pada saya lebih berharga daripada metode yang cuma membuat saya merasa enak selama seminggu.

Kalau Anda seorang engineer yang sedang melihat ke pasar, harapan jujur saya adalah sebagian besar ide Anda tidak akan bertahan saat berhadapan dengan data yang bersih dan biaya yang nyata. Itu bukan proses yang sedang mengecewakan Anda. Itu satu-satunya versi proses yang layak Anda miliki.


Artikel ini disusun dari post 01 sampai 12 dalam seri build-log KenKem. Hanya untuk tujuan edukasi. Bukan nasihat keuangan. Kinerja masa lalu tidak menjamin hasil di masa depan.

โ† All journal articles

Chat