Fungsi fitness kustom untuk optimisasi
Optimisasi cBot adalah proses menentukan nilai parameter terbaik yang mungkin untuk cBot sebelum menerapkannya untuk trading langsung. Di cTrader, Anda dapat mengoptimalkan cBot terhadap berbagai kriteria bawaan seperti memaksimalkan keuntungan atau meminimalkan drawdown ekuitas. Namun, Anda juga dapat menulis fungsi fitness Anda sendiri untuk optimisasi yang dapat berguna jika Anda ingin menerapkan kriteria kinerja kustom ke cBot. Dalam artikel ini dan video terkaitnya, kami membahas bagaimana fungsi fitness kustom bekerja.
Perhatikan bahwa artikel ini tidak membahas proses optimisasi cBot menggunakan kriteria bawaan.
Tentukan fungsi fitness kustom
Fungsi fitness kustom hanyalah override dari metode GetFitness().
1 2 3 4 | |
Override harus menerima satu argumen dari tipe args GetFitness agar dihitung sebagai fungsi fitness kustom.
Tulis fungsi fitness kustom
Karena metode GetFitness() harus mengembalikan double, isi metode harus berisi perhitungan yang menghasilkan nilai tipe ini.
Misalnya, kita dapat menulis fungsi fitness kustom sederhana yang mengkuadratkan total jumlah trading yang menang yang dilakukan oleh cBot dan kemudian membagi nilai ini dengan total nilai trading yang kalah. Dengan cara ini, kita mengalokasikan lebih banyak bobot untuk trading yang menang dan, dalam arti tertentu, memungkinkan cBot yang dioptimalkan untuk membuat beberapa langkah berisiko.
Berikut adalah tampilan fungsi fitness kita.
1 2 3 4 | |
Pada titik ini, kita dapat menambahkan override ke cBot mana pun yang kita inginkan, lalu menyimpan dan membangunnya.
Gunakan fungsi fitness kustom dalam optimisasi
Setelah menambahkan fungsi kita, kita perlu menambahkan instance cBot pilihan kita dan kemudian beralih ke tab Backtesting. Untuk melakukan optimisasi menggunakan fungsi kustom kita, yang perlu kita lakukan hanyalah membuka bagian Kriteria optimisasi dan memilih opsi Kustom. Setelah itu, kita dapat menjalankan optimisasi seperti biasa.
Selama optimisasi, skor fitness yang lebih tinggi akan dialokasikan ke pass di mana cBot telah memaksimalkan rasio antara jumlah trading yang menang dikuadratkan dan jumlah trading yang kalah.
Modifikasi fungsi fitness kustom
Kita juga dapat kembali ke fungsi kustom kita dan memodifikasinya sebagai berikut.
1 2 3 4 5 6 7 8 9 10 11 | |
Fungsi ini masih mengikuti algoritma sebelumnya tetapi hanya menerapkan perhitungan kustom jika lebih dari 20 trading telah dilakukan oleh cBot. Dalam kasus lain, fungsi mengembalikan double terendah yang mungkin. Secara teori, ini seharusnya meningkatkan hasil dengan mengurangi kemungkinan bias statistik.
Jika kita membangun ulang bot dan menjalankan optimisasi lagi, kita seharusnya melihat beberapa pass mendapatkan skor fitness yang sangat rendah karena rendahnya jumlah total trading yang dilakukan oleh cBot.
Terakhir, kita ingin meminimalkan drawdown ekuitas sambil tetap mendorong trading aktif.
1 2 3 4 5 6 7 8 | |
Jika kita menjalankan optimisasi lagi, kita seharusnya melihat pass terbaik yang mungkin diberikan strategi trading kita.
Fungsi fitness kustom menyediakan alat yang sangat baik untuk menentukan nilai parameter terbaik yang mungkin sesuai dengan pendekatan unik Anda dalam trading.