Apa itu contoh kerja dari Pengujian Algoritma?
Definisi: apa arti pengujian algoritma
Pengujian algoritma adalah proses mengevaluasi sistem berbasis aturan otomatis menggunakan data dan metrik yang ditentukan untuk memahami bagaimana sistem tersebut akan berperilaku dalam kondisi asumsi tertentu. Dalam konteks forex, sebuah “algoritma” biasanya berarti serangkaian aturan deterministik untuk pengambilan keputusan (misalnya, kapan harus masuk/keluar dan bagaimana ukuran posisi ditetapkan). Poin kuncinya adalah pengujian tidak sama dengan peramalan: pengujian menggambarkan perilaku masa lalu atau simulasi berdasarkan pengaturan tertentu.
Contoh skenario kerja (dengan asumsi eksplisit)
Di bawah ini adalah contoh kerja menggunakan angka yang disederhanakan. Contoh ini sengaja tidak didasarkan pada data pasar real-time.
Tujuan dan periode pengujian
Asumsikan Anda ingin menguji algoritma yang membuka dan menutup perdagangan menggunakan mekanisme tetap berikut:
- Hanya satu posisi yang dapat terbuka pada satu waktu.
- Saat perdagangan dibuka, perdagangan ditutup setelah tepat 5 langkah harga.
- Laba/rugi dihitung dari satu harga masuk dan satu harga keluar.
- Ukuran posisi konstan: 10 unit per perdagangan.
Asumsi (nyatakan secara eksplisit):
- Data pengujian: 3 “perdagangan” independen dari sampel mirip historis, dengan harga masuk dan keluar yang diketahui.
- Penanganan spread/slippage: Anda memodelkan biaya transaksi menggunakan biaya konstan per perdagangan sebesar 0,50 (dalam unit Laba/Rugi pilihan Anda).
- Tidak ada biaya pembiayaan, rollover, atau pajak yang disertakan.
- Semua harga diperlakukan sebagai diketahui secara pasti pada saat pengambilan keputusan (tanpa look-ahead).
Data input
Asumsikan tiga perdagangan memiliki harga masuk dan keluar berikut (pergerakan harga menentukan Laba/Rugi kotor):
- Perdagangan A: masuk 100,0 → keluar 101,0 (pergerakan +1,0)
- Perdagangan B: masuk 200,0 → keluar 198,5 (pergerakan −1,5)
- Perdagangan C: masuk 50,0 → keluar 50,2 (pergerakan +0,2)
Untuk mengonversi pergerakan menjadi Laba/Rugi kotor, asumsikan konversi linier sederhana:
- Laba/Rugi kotor = pergerakan × ukuran posisi
- Ukuran posisi = 10 unit
Jadi:
- Laba/Rugi kotor Perdagangan A = (+1,0) × 10 = +10,0
- Laba/Rugi kotor Perdagangan B = (−1,5) × 10 = −15,0
- Laba/Rugi kotor Perdagangan C = (+0,2) × 10 = +2,0
Terapkan biaya transaksi
Asumsikan biaya transaksi tetap per perdagangan yang ditutup sebesar 0,50.
- Laba/Rugi bersih per perdagangan = Laba/Rugi kotor − 0,50
Hasil:
- Perdagangan A bersih = 10,0 − 0,50 = 9,5
- Perdagangan B bersih = −15,0 − 0,50 = −15,5
- Perdagangan C bersih = 2,0 − 0,50 = 1,5
Total Laba/Rugi bersih selama pengujian 3 perdagangan = 9,5 + (−15,5) + 1,5 = −4,5
Metrik yang dapat Anda verifikasi
Dari asumsi yang sama, Anda dapat menghitung:
- Tingkat kemenangan = 2 perdagangan menang dari 3 = 66,7%
- Rata-rata Laba/Rugi bersih per perdagangan = (−4,5) / 3 = −1,5
- Laba kotor (jumlah pemenang) = 9,5 + 1,5 = 11,0
- Rugi kotor (jumlah absolut yang kalah) = 15,5
- Faktor laba = laba kotor / rugi kotor = 11,0 / 15,5 ≈ 0,71
Ini adalah contoh “kerja” karena orang lain dapat mereproduksi setiap angka dengan menggunakan input dan rumus yang sama. Jika mereka tidak dapat melakukannya, pengaturan pengujian tidak jelas.
Bagaimana mekanisme berbeda dari variabilitas pasar/penyedia
Dalam penggunaan nyata, beberapa item biasanya bervariasi dan dapat mengubah hasil bahkan jika aturan algoritma tetap sama:
- Perilaku pasar: rezim volatilitas, korelasi, dan perubahan tren.
- Detail eksekusi: kualitas eksekusi pesanan, waktu, dan biaya yang direalisasikan.
- Kualitas data: apakah harga mirip historis mencerminkan apa yang dapat diamati tanpa look-ahead.
Contoh di atas memisahkan mekanisme tetap (penahanan 5 langkah, ukuran konstan, model biaya) dari bagian variabel (pergerakan harga). Pemisahan ini penting untuk pengujian yang baik karena memberi tahu Anda apa yang ditentukan oleh algoritma Anda versus oleh asumsi Anda.
Keterbatasan material dan mode kegagalan
Setidaknya satu keterbatasan utama adalah bahwa pengujian dapat menghasilkan kesimpulan yang menyesatkan jika asumsi tidak sesuai dengan kenyataan. Mode kegagalan umum meliputi:
- Overfitting: menyetel aturan atau parameter algoritma hingga cocok dengan sampel historis tertentu, mengurangi kinerja pada data baru.
- Ketidaksesuaian eksekusi: pengisian simulasi dan model biaya mungkin terlalu optimis dibandingkan dengan eksekusi nyata.
- Biaya dan kondisi tersembunyi: perdagangan nyata dapat melibatkan efek yang tidak terwakili dalam model biaya yang disederhanakan (misalnya, spread yang bervariasi atau biaya lainnya).
- Kebocoran data: menggunakan informasi dalam pengujian yang tidak akan tersedia pada saat pengambilan keputusan akan meningkatkan hasil secara tidak realistis.