Backtest menunjukkan satu jalur terwujud, sedangkan simulasi mengeksplorasi jalur yang dibangkitkan dari asumsi tertentu. Urutan, pengambilan sampel dan ukuran posisi dapat mengubah drawdown. Hasil simulasi merupakan perkiraan bersyarat pada model; bukan probabilitas bangkrut terverifikasi bagi akun live yang belum didefinisikan.

Apa sebenarnya simulasi Monte Carlo?

Monte Carlo menggunakan pengambilan acak berulang dari model yang dinyatakan. Mengacak urutan daftar hasil uang tetap mengubah jalur tetapi mempertahankan jumlahnya. Mengambil sampel dengan pengembalian dapat mengubah urutan dan jumlah. Model parametrik berupa kemenangan serta kerugian independen dengan jumlah tertentu menghasilkan distribusi lain. Nyatakan prosedur serta cara ukuran posisi memperbarui ekuitas.

Mulai dari jalur yang bisa diperiksa tangan. Model uang tetap dengan modal 1.000 satuan dan hasil +200, −100, −100 memberi 1.000 → 1.200 → 1.100 → 1.000, MDD 200 / 1.200 ≈ 16,67%. Urutan −100, −100, +200 memberi 1.000 → 900 → 800 → 1.000, MDD 20%. Keduanya berakhir 1.000. Masukkan modal awal sebagai calon puncak; menghilangkannya mengecilkan drawdown jalur yang mulai rugi.

Aturan berhenti dapat mengubah hasil akhir permutasi

Tanpa aturan berhenti, +300 −150 −150 berjumlah nol. Tambahkan kondisi: sesudah setiap hasil penuh, berhenti bila modal 850 USD atau kurang. Urutan menentukan jalur dan hasil mana yang dijalankan. Geser diagram mendatar bila perlu.

Permutasi dihentikan pada ambang modalModel mulai 1.000 USD dan berhenti sesudah hasil membuat modal 850 USD atau kurang. A menjalankan +300, −150, −150 dan berakhir 1.000. B menjalankan −150 pertama, mencapai 850 lalu melewati dua hasil sisa.DAFTAR SAMA, AKHIR BERBEDAA: +300, −150, −150B: −150, −150, +3001.0001.3001.1501.0001.000850ambang 850langkah sisa dilewatiA: 3 hasil; modal akhir 1.000.B: 1 hasil; modal akhir 850.

Asumsi: tiga hasil neto USD rekaan, modal awal 1.000, tanpa reinvestasi atau arus kas. Ambang diperiksa sesudah langkah penuh; ini aturan latihan, bukan rekomendasi. Dua jalur tidak menentukan probabilitas. Dokumentasi Python menjelaskan pengacakan daftar; kondisi berhenti merupakan bagian model terpisah.

Daftar sampel dan hasil yang dijalankanModal awal 1.000 USD, tiga hasil neto rekaan, berhenti sesudah langkah dengan modal ≤ 850 USD.PERHITUNGAN HIPOTETISUrutan A+300; −150; −150 → 1.000USDUrutan B−150 → 850 USD; berhentiCakupanDaftar sama; hasil akhirberbeda
Daftar sampel dan hasil yang dijalankan. Modal awal 1.000 USD, tiga hasil neto rekaan, berhenti sesudah langkah dengan modal ≤ 850 USD.

Periksa ambang sesudah setiap hasil sesuai aturan yang dipilih.

Pada layar kecil, gulir diagram mendatar atau perbesar. Nilai dan kesimpulan juga tersedia dalam teks di bawah.

Urutan A
+300; −150; −150 → 1.000 USD – Ketiga hasil dijalankan; ambang tidak tercapai.
Urutan B
−150 → 850 USD; berhenti – Dua hasil sisa tidak dijalankan; bukan transaksi bernilai nol.
Cakupan
Daftar sama; hasil akhir berbeda – Aturan penghentian menjadi bagian model, tanpa probabilitas yang ditentukan dua contoh.

Titik menunjukkan langkah yang dijalankan. Garis abu B menandai percobaan berakhir, bukan dua transaksi tambahan dengan hasil nol.

A menjalankan +300, −150, −150 dan kembali ke 1.000 USD. B menjalankan −150 pertama, mencapai 850 USD, lalu tidak menjalankan dua hasil berikutnya. Pisahkan daftar yang diambil dari hasil yang benar-benar dijalankan. Stop strategi, batas modal atau perubahan volume tidak direproduksi dengan mengacak riwayat lalu tetap menjumlahkan semua elemen.

Pertanyaan yang dapat dijawab model

Simulasi terdefinisi dapat memperkirakan distribusi MDD, kejadian melewati ambang dan hasil terminal. Hitung MDD setiap jalur lengkap dahulu, baru ambil persentil distribusinya. Pita persentil ekuitas pada setiap waktu bukan satu jalur yang dijalankan. Nyatakan konvensi kuantil karena interpolasi serta distribusi diskret dapat mengubah bagian sampel di bawah persentil. Ringkasan itu bukan batas rugi masa depan terjamin.

Pada model hipotetis 200 transaksi independen, peluang menang 0,55, keuntungan neto tetap 100 EUR dan kerugian neto tetap 80 EUR, rerata hasil adalah 0,55 × 100 − 0,45 × 80 = 19 EUR per transaksi, atau 3.800 EUR untuk 200. Jumlah transaksi tidak otomatis satu tahun.

Jika K jumlah kemenangan, hasil terminal = 180K − 16.000 EUR. Kuantil binomial eksak dengan konvensi K terkecil yang probabilitas kumulatifnya setidaknya mencapai target memberi hasil terminal 920 EUR pada 1%, 1.640 EUR pada 5%, 3.800 EUR pada 50% dan 5.960 EUR pada 95%. Ini nilai distribusi yang dihitung untuk model, bukan klaim eksperimen atau hasil akun. Simulasi berhingga berfluktuasi di sekitar distribusi itu.

Contoh tambahan: persentil interpolasi bukan proporsi sampel tepat 95%

Tiga besaran MDD rekaan adalah 0%, 20%, 40%. Konvensi interpolasi linear inklusif seperti PERCENTILE.INC pada 0,95 memberi 38%: posisinya 1,9 pada indeks mulai nol, antara 20 dan 40. Hanya dua dari tiga nilai sampel berada pada atau di bawah 38%, bukan 95%.

Dengan invers distribusi empiris diskret, yaitu nilai terkecil yang proporsi kumulatifnya setidaknya 0,95, kuantilnya justru 40%. Ini dua definisi ringkasan sampel, bukan dua taksiran batas rugi live atau interval keyakinan. Simpan konvensi yang dipilih ketika membandingkan laporan.

Membangun model di Excel

Contoh berikut memakai sintaks Excel berbahasa Inggris; nama fungsi, pemisah argumen dan desimal dapat berbeda menurut pengaturan bahasa. Pertahankan angka serta referensinya ketika menyesuaikan sintaks. Isi A1 = 0.55, A2 = 100, A3 = -80, A4 = 10000: peluang hipotetis, dua hasil uang neto tetap dan modal awal.

Baris 1 merupakan keadaan sebelum transaksi: C1 =$A$4, D1 =C1, E1 =0. Mulai transaksi pertama pada baris 2:

B2 =IF(RAND()<$A$1,$A$2,$A$3)
C2 =C1+B2
D2 =MAX(D1,C2)
E2 =(D2-C2)/D2

Salin B2:E2 sampai baris 201 untuk tepat 200 transaksi. Modal akhir C201, maximum drawdown =MAX(E1:E201). Referensi absolut $A$ mempertahankan parameter ketika rumus disalin. Horizon 200 transaksi belum menentukan satu tahun kalender. Model uang tetap ini memerlukan aturan berhenti, margin serta insolvensi terpisah sebelum dipakai untuk menilai kondisi praktis.

Untuk jalur lain, salin seluruh blok B:E beserta baris awal dan pertahankan referensi parameter $A$. Pada sejumlah jalur yang dipilih, pisahkan persentil modal akhir dari persentil MDD masing-masing jalur. Dalam =PERCENTILE.INC(range,0.95), 0.95 memilih ekor atas besaran drawdown positif. Ekor bawah hasil modal memakai 0.05 atau 0.01. Fungsi dapat menginterpolasi.

RAND menghasilkan nilai baru ketika lembar dihitung ulang. Simpan nilai hasil pengambilan serta asumsi untuk eksperimen tepat yang sedang ditinjau; mengubah rumus atau menekan F9 dapat mengganti sampel. Ini petunjuk membangun model, bukan pernyataan bahwa workbook tertentu sudah diuji.

Bootstrap di Python dan perbandingan dengan bilangan acak bersama

Python memudahkan pengambilan berulang, tetapi Excel juga dapat mengambil sampel historis dengan rumus yang sesuai. Bootstrap mengambil nilai dari hasil tercatat, bukan hanya peluang dan dua hasil tetap yang diasumsikan. Keduanya memerlukan pilihan tentang ketergantungan, ukuran, biaya serta cakupan riwayat.

Setelah menyiapkan np, rng, history dan initial_capital, untuk riwayat uang neto yang tidak kosong, Generator NumPy dapat membuat:

new_sequence = rng.choice(history, size=200, replace=True)
equity = np.concatenate(([initial_capital], initial_capital + np.cumsum(new_sequence)))

Masukkan keadaan awal sebelum menghitung puncak berjalan dan drawdown. Hitung maksimum tiap jalur sebelum meringkasnya. Catat data, seed, versi pustaka, horizon, biaya dan aturan berhenti. Lebih banyak jalur mengurangi derau komputasi, bukan menambah pengamatan kondisi pasar baru.

Perbandingan terkendali dapat memakai bilangan acak yang sama. Misalkan hasil +1 bila U uniform lebih kecil dari ambang, selain itu −1. Ambang A = 0,55 dan B = 0,60 adalah asumsi rekaan. Rerata masing-masing 0,10 dan 0,20, sehingga selisih harapan B − A = 0,10.

Dengan U yang sama, selisih +2 hanya ketika 0,55 ≤ U < 0,60, selain itu nol. Varians selisih = 4 × 0,05 − 0,10² = 0,19. Dengan pengambilan independen, varians menjumlah: 0,99 + 0,96 = 1,95. Konstruksi bersama mengurangi derau perbandingan ini, bukan ketidakpastian peluang pasar, dan tidak harus membantu strategi sembarang.

Mengambil transaksi historis satu per satu dengan pengembalian mempertahankan nilai yang teramati, tetapi memutus urutan asli dan tidak mempertahankan pengelompokan kerugian. Ia tidak menghasilkan guncangan yang tidak pernah ada dalam riwayat. Bila ketergantungan penting, pertimbangkan pengambilan blok serta skenario stres, sambil mengakui sejarah terbatas dapat melewatkan rezim mendatang.

Nyatakan aturan ukuran sebagai bagian simulasi. Hasil uang tetap dan risiko yang dihitung ulang dari ekuitas berubah bukan eksperimen yang sama.

Batas kesimpulan yang jujur

Contoh peluang tetap independen mengasumsikan distribusi stabil dan independensi. Metode Monte Carlo sendiri tidak terbatas pada dua asumsi itu: model dapat memuat ketergantungan serta rezim berubah. Tantangannya mendefinisikan dan menilai model tersebut. Bandingkan perilaku model dengan riwayat tercatat serta kondisi stres yang masuk akal di luar riwayat.

Resampling tidak mengungkap hasil yang absen. Tinjau eksposur tumpang tindih, ketergantungan dan cakupan pasar. Walk-forward analysis mengatur periode pengembangan serta evaluasi berurutan; tidak otomatis mendeteksi peluruhan keunggulan atau menjadikan data yang sudah diperiksa sebagai pengujian baru.

Persentil simulasi bukan batas atas terjamin maupun lantai probabilistik terbukti untuk drawdown live. Tentukan ambang kegagalan sebelum studi; uji biaya, fill yang hilang, gap dan aturan berhenti secara terpisah. Dalam model ideal yang rugi tepat 5% modal tersisa setiap kali, modal setelah n kerugian = modal awal × 0,95n, positif untuk n berhingga. Ambang berhenti praktis, margin minimum atau rugi lebih besar mengubah model itu. Lihat pustaka manajemen risiko, bukan menganggap hasil simulasi memastikan akun bertahan.

Langkah penerapan

  1. Kumpulkan riwayat yang terdefinisi. Catat jumlah, biaya, risiko dan cakupan pasar. Sampel kecil memperbesar ketidakpastian ekor, tanpa batas universal 100 transaksi. Gunakan studi historis atau demo untuk mengumpulkan data, bukan trading semata-mata mengejar jumlah.
  2. Bangun serta periksa model. Masukkan dua jalur tiga transaksi secara manual, periksa hasil akhir serta drawdown. Simpan satu sampel sebelum memperbanyak jalur; satu jam kerja atau seribu percobaan tidak membuktikan kecukupan model.
  3. Periksa ekor drawdown yang merugikan. Untuk besaran rugi positif, lihat persentil 95, bukan 5; jika memakai perubahan negatif, nyatakan konvensinya. Sertakan modal awal dan aturan ukuran. Sesudah mengurangi risiko, hitung ulang; jangan menjanjikan perubahan drawdown pasti proporsional.
  4. Bandingkan riwayat revisi secara konsisten. Catat perubahan cakupan, satuan, biaya serta aturan risiko. Median model turun tidak sendiri membuktikan penyebab penurunan keunggulan live. Gunakan rencana trading dan catatan untuk menjaga versi eksperimen.