Panduan Backtesting
Pengenalan
Backtesting (ujian lampau) ialah proses menguji strategy (strategi) trading anda menggunakan data historical (data sejarah). Sebelum mempertaruhkan duit sebenar, uji dahulu!
"Adakah anda akan memandu kereta tanpa mengujinya dahulu? Jadi kenapa berdagang dengan satu strategi tanpa mengujinya?"
Objektif Pembelajaran
Selepas habis pelajaran ini, anda akan boleh:
- Faham apa itu backtesting dan kenapa ia penting sebelum mempertaruhkan duit sebenar
- Buat backtesting manual FCPO langkah demi langkah guna spreadsheet (hamparan)
- Kira metrik penting (win rate / kadar menang, RRR / nisbah risiko-ganjaran, profit factor / faktor untung, max drawdown / susut nilai maksimum) dan tafsir maksudnya
- Elak silap biasa (hindsight bias / bias berdasarkan pengetahuan kemudian, curve fitting / penyuaian lengkung, abai kos) dan tahu bila strategi sedia untuk live (dagangan sebenar)
Apa Itu Backtesting?
Definisi
Backtesting = Mengaplikasikan peraturan trading anda pada data sejarah untuk melihat bagaimana ia akan berprestasi.
Kenapa Backtest?
| Tanpa Backtesting | Dengan Backtesting |
|---|---|
| Harap strategi berkesan | Tahu strategi berkesan |
| Temui kelemahan dengan duit sebenar | Temui kelemahan secara percuma |
| Tiada keyakinan | Bina keyakinan |
| Jangkaan rawak | Jangkaan berasaskan data |
Jenis-jenis Backtesting
1. Backtesting Manual
Proses:
- Skrol ke belakang dalam carta
- Cari setup (susunan kemasukan) secara manual
- Rekod dagangan hipotesis
- Kira statistik
Kelebihan:
- Percuma
- Belajar price action (pergerakan harga) secara mendalam
- Bina intuisi
Kekurangan:
- Memakan masa
- Mudah terdedah kepada bias
- Boleh terlepas setup
2. Backtesting Automatik
Proses:
- Kod strategi anda
- Jalankan pada data sejarah
- Dapat keputusan serta-merta
Kelebihan:
- Pantas
- Objektif
- Saiz sampel yang besar
Kekurangan:
- Perlu kemahiran coding (pengaturcaraan)
- Memerlukan data berkualiti
- Mungkin terlebih optimum (over-optimize)
Untuk Kebanyakan Trader FCPO: Manual
Mulakan dengan backtesting manual:
- Tidak perlu coding
- Belajar kelakuan pasaran
- Berpatutan (percuma)
- Cukup baik untuk kebanyakan strategi
Proses Backtesting Manual
Langkah 1: Tetapkan Strategi Anda
Tulis peraturan yang jelas:
Strategi: Kemasukan RBS
Timeframe (kerangka masa): 1H
Entry (kemasukan): Long bila harga retest (uji semula) resistance (rintangan) yang sudah tembus
Pengesahan: Lilin bullish (menaik) pada aras
SL (stop loss / had rugi): Bawah aras (15-20 tick)
TP (take profit / ambil untung): Resistance seterusnya atau 30 tick
Langkah 2: Pilih Tempoh untuk Ujian
Disyorkan:
- Minimum 3 bulan data
- Lebih baik: 6-12 bulan
- Mesti merangkumi keadaan pasaran berbeza (trending / bertren, ranging / mendatar)
Langkah 3: Sediakan Rekod Anda
Cipta spreadsheet (hamparan) dengan:
| Lajur | Data |
|---|---|
| Tarikh | Bila dagangan berlaku |
| Setup | Setup mana yang tercetus |
| Entry | Harga kemasukan |
| SL | Harga stop loss |
| TP | Harga take profit |
| Keputusan | Menang/Kalah |
| P&L (untung/rugi) | Untung atau rugi dalam tick |
| Nota | Pemerhatian |
Langkah 4: Skrol dan Cari Setup
Proses:
- Pergi ke tarikh permulaan
- Skrol ke hadapan lilin demi lilin
- Bila setup muncul, rekodkannya
- Catat sama ada SL atau TP kena
- Teruskan sehingga tamat
PENTING: Jangan mengintai ke hadapan! Dagangkan hanya apa yang anda akan nampak secara masa nyata.
Langkah 5: Kira Statistik
Selepas melengkapkan semua dagangan:
Jumlah dagangan: ___
Menang: ___
Kalah: ___
Win rate (kadar menang): ____%
Jumlah tick: ___
Purata menang: ___ tick
Purata kalah: ___ tick
Menang terbesar: ___ tick
Kalah terbesar: ___ tick
Kalah berturut-turut maksimum: ___
Profit factor (faktor untung): Jumlah menang / Jumlah kalah
Contoh Backtesting
Strategi: Lantunan 20 EMA
Peraturan:
- Timeframe: 1H
- Entry: Lantunan (bounce) dari 20 EMA dalam uptrend (tren menaik)
- Pengesahan: Lilin bullish pada EMA
- SL: Bawah EMA (15 tick)
- TP: 30 tick
Tempoh Backtest: Oktober 2025
Contoh dagangan:
| Tarikh | Entry | SL | TP | Keputusan | Tick |
|---|---|---|---|---|---|
| 3 Okt | 4,220 | 4,205 | 4,250 | Menang | +30 |
| 5 Okt | 4,245 | 4,230 | 4,275 | Kalah | -15 |
| 8 Okt | 4,260 | 4,245 | 4,290 | Menang | +30 |
| 12 Okt | 4,235 | 4,220 | 4,265 | Menang | +30 |
| 15 Okt | 4,280 | 4,265 | 4,310 | Kalah | -15 |
| 18 Okt | 4,250 | 4,235 | 4,280 | Menang | +30 |
| 22 Okt | 4,290 | 4,275 | 4,320 | Kalah | -15 |
| 25 Okt | 4,275 | 4,260 | 4,305 | Menang | +30 |
| 28 Okt | 4,310 | 4,295 | 4,340 | Menang | +30 |
| 30 Okt | 4,285 | 4,270 | 4,315 | Kalah | -15 |
Analisis Keputusan
Jumlah dagangan: 10
Menang: 6
Kalah: 4
Win rate: 60%
Jumlah menang: 6 × 30 = +180 tick
Jumlah kalah: 4 × 15 = -60 tick
Untung bersih: +120 tick
Purata menang: 30 tick
Purata kalah: 15 tick
RRR (nisbah risiko-ganjaran): 2:1
Profit factor: 180/60 = 3.0
Kalah berturut-turut maksimum: 2
KESIMPULAN: Strategi menguntungkan dalam backtest ✓
Metrik Backtest untuk Dijejak
Metrik Penting
| Metrik | Apa Ia Beritahu Anda |
|---|---|
| Win rate | Berapa kerap anda menang |
| Purata menang | Dagangan menang biasa |
| Purata kalah | Dagangan kalah biasa |
| RRR | Risiko:Ganjaran yang dicapai |
| Profit factor | Untung kasar ÷ Rugi kasar |
| Max drawdown (susut nilai maksimum) | Tempoh paling teruk |
| Kalah berturut-turut maksimum | Untuk persediaan mental |
Tanda Aras yang Baik
| Metrik | Minimum | Baik | Cemerlang |
|---|---|---|---|
| Win rate | 50% | 55-60% | 65%+ |
| RRR | 1:1.5 | 1:2 | 1:3+ |
| Profit factor | 1.2 | 1.5-2.0 | 2.5+ |
Tanda Bahaya (Red Flags)
Jangan dagangkan strategi jika:
- Win rate bawah 40%
- Profit factor bawah 1.0
- Kalah berturut-turut maksimum > 7
- Drawdown > 20% daripada modal
Kesilapan Backtesting Biasa
Kesilapan 1: Hindsight Bias (bias berdasarkan pengetahuan kemudian)
Masalah: "Saya pasti tahu untuk langkau dagangan itu"
Realiti: Anda tidak akan tahu secara masa nyata
Penyelesaian: Dagangkan SETIAP setup yang memenuhi kriteria, jangan pilih-pilih (cherry-pick)
Kesilapan 2: Terlalu Sedikit Dagangan
Masalah: "Saya uji 10 dagangan, nampak bagus!"
Realiti: 10 dagangan tidak signifikan dari segi statistik
Penyelesaian: Minimum 50 dagangan, idealnya 100+
Kesilapan 3: Curve Fitting (penyuaian lengkung)
Masalah: Mengubah peraturan supaya muat sempurna dengan data sejarah
Realiti: Strategi yang terlebih optimum (over-optimize) gagal dalam dagangan sebenar
Penyelesaian: Kekalkan peraturan ringkas, uji pada data yang belum dilihat selepas itu
Kesilapan 4: Mengabaikan Kos
Masalah: Backtest tunjuk untung, tetapi tidak masukkan komisen
Realiti: Komisen makan ke dalam untung
Penyelesaian: Tolak komisen round-turn (pergi-balik) broker anda bagi setiap dagangan daripada keputusan (anggaran ~RM20/round-turn, semak broker anda sendiri)
Kesilapan 5: Hanya Menguji Pasaran Baik
Masalah: Backtest hanya tempoh bertren (trending)
Realiti: Pasaran juga mendatar (ranges) dan tidak menentu (chops)
Penyelesaian: Masukkan semua keadaan pasaran dalam tempoh ujian
Daripada Backtest ke Dagangan Sebenar
Selepas Backtest Berjaya
Jangan terus melompat ke live (dagangan sebenar)!
Proses:
- Backtest (data 3-6 bulan) ✓
- Forward test (ujian ke hadapan) (1-2 bulan paper trading / dagangan kertas)
- Live saiz kecil (50% saiz biasa)
- Live saiz biasa
Forward Testing (Ujian ke Hadapan)
Apa ia: Paper trading strategi secara masa nyata
Kenapa: Mengesahkan keputusan backtest kekal benar dalam pasaran semasa
Tempoh: Minimum 1 bulan, 20+ dagangan
Senarai Semak Peralihan
Sebelum pergi live:
- Backtest tunjuk untung melebihi 50+ dagangan?
- Forward test mengesahkan keputusan?
- Komisen dimasukkan dalam pengiraan?
- Selesa dengan max drawdown?
- Faham kalah berturut-turut maksimum?
- Pelan dagangan ditulis berdasarkan keputusan?
Templat Rekod Backtest
Log Dagangan
Tarikh: ___________
Setup: ___________
Entry: ___________
SL: ___________
TP: ___________
Keputusan: Menang / Kalah
P&L: ___________ tick
Nota: ___________
Ringkasan Statistik
TEMPOH: _____ hingga _____
Jumlah Dagangan: _____
Menang: _____
Kalah: _____
Win Rate: _____%
Jumlah Tick Menang: _____
Jumlah Tick Kalah: _____
Tick Bersih: _____
Purata Menang: _____ tick
Purata Kalah: _____ tick
RRR Sebenar: _____
Profit Factor: _____
Menang Berturut-turut Maksimum: _____
Kalah Berturut-turut Maksimum: _____
Max Drawdown: _____ tick
LULUS / GAGAL: _____
Soalan Lazim (FAQ)
Q: "Berapa lama nak backtest?"
A: Minimum 3 bulan data, 50+ dagangan. Lebih baik ada 6-12 bulan yang merangkumi keadaan pasaran berbeza.
Q: "Platform mana untuk backtest?"
A: TradingView (percuma) sangat bagus. Anda boleh skrol ke belakang data sejarah FCPO dan tandakan dagangan secara manual.
Q: "Backtest profitable tapi live trading loss. Kenapa?"
A: Sebab-sebab biasa:
- Hindsight bias dalam backtest
- Emosi dalam dagangan sebenar
- Perbezaan pelaksanaan (execution)
- Keadaan pasaran berubah
Penyelesaian: Forward testing yang lebih teliti
Q: "Perlu coding untuk backtest?"
A: Tidak. Backtesting manual sudah cukup untuk kebanyakan strategi budi bicara (discretionary). Coding hanya perlu untuk strategi yang automatik sepenuhnya.
Kesimpulan
Intipati Penting
| Konsep | Ingat |
|---|---|
| Apa | Uji strategi pada data sejarah |
| Kenapa | Sahkan sebelum mempertaruhkan duit |
| Bagaimana | Skrol manual + spreadsheet |
| Minimum | 50+ dagangan, 3+ bulan |
| Selepas | Forward test sebelum live |
| Awas | Hindsight bias, curve fitting |
Item Tindakan Anda
- Tulis peraturan strategi anda dengan jelas
- Sediakan spreadsheet backtest
- Uji minimum 3 bulan data
- Kira statistik
- Forward test sebelum dagangan sebenar
"Setiap trader yang rugi berharap mereka telah backtest. Setiap trader yang menang gembira mereka melakukannya. Yang mana satu anda?"
Uji Diri Anda
Cuba jawab tanpa lihat nota semula:
- Apakah backtesting dan kenapa ia penting sebelum mempertaruhkan duit sebenar?
- Berapa minimum bilangan dagangan yang disyorkan supaya keputusan backtest signifikan dari segi statistik, dan kenapa menguji hanya 10 dagangan tidak mencukupi?
- Apakah hindsight bias dan curve fitting, dan bagaimana cara mengelaknya?
- Mengapa penting menolak komisen broker (round-turn) daripada keputusan backtest?
Jawapan: 1) Backtesting ialah mengaplikasikan peraturan trading pada data sejarah untuk melihat prestasinya; ia penting kerana anda boleh temui kelemahan strategi secara percuma dan bina keyakinan berasaskan data sebelum berisiko dengan duit sebenar; 2) Minimum 50 dagangan (idealnya 100+) — 10 dagangan terlalu sedikit untuk signifikan dari segi statistik, jadi keputusan mungkin hanya nasib; 3) Hindsight bias ialah menganggap anda akan tahu langkau dagangan buruk (sedangkan anda tidak akan tahu secara masa nyata) — elak dengan mendagangkan SETIAP setup yang memenuhi kriteria; curve fitting ialah mengubah peraturan supaya muat sempurna dengan data lampau — elak dengan kekalkan peraturan ringkas dan uji pada data yang belum dilihat; 4) Kerana komisen makan ke dalam untung — backtest yang nampak untung boleh jadi rugi sebenarnya selepas kos dagangan ditolak.
Peringatan: Pendidikan & analisis sahaja, bukan nasihat pelaburan. Dagangan niaga hadapan FCPO melibatkan risiko kerugian. Trade dengan modal yang anda mampu rugi.
Pelajaran berkaitan — 5 · Pengurusan Risiko
Langkah seterusnya
Pendidikan & analisis sahaja, bukan nasihat pelaburan. Dagangan niaga hadapan melibatkan risiko.