Lewati ke isi

Optimisasi cBot di cTrader

Artikel ini menjelaskan cara mengoptimalkan bot trading di cTrader Windows dan Mac.

Terkadang sulit untuk menentukan set parameter awal yang optimal untuk sebuah cBot. Untungnya, cTrader menawarkan fitur optimisasi cBot bawaan. Optimisasi mengambil kode Anda dan menjalankannya beberapa kali dengan setiap putaran berdasarkan berbagai nilai parameter. Kemudian, fitur ini menyajikan Anda serangkaian hasil yang dapat disesuaikan yang dapat Anda gunakan untuk menentukan konfigurasi parameter optimal.

Untuk menggunakan fitur ini, pilih sebuah instans cBot dan beralih ke tab Optimisation.

Image title

Setelah itu, tentukan periode backtesting untuk optimisasi dengan menggunakan kalender dropdown atau dengan menarik slider.

Image title

Pengaturan optimisasi

Karena optimisasi pada dasarnya hanyalah serangkaian backtesting, Anda dapat menentukan pengaturan backtesting serupa dengan yang dilakukan di tab Backtesting.

Parameter optimisasi

Klik tombol Parameters di sebelah kiri slider kalender. Anda akan melihat jendela berikut.

Image title

Di dalamnya, centang bendera di sebelah parameter cBot yang ingin Anda optimisasi. Parameter Timeframe tersedia untuk semua cBot.

Kriteria optimisasi

Tekan tombol Criteria yang terletak di sebelah kanan tombol Optimisation parameters. cTrader akan membuka tab berikut.

Image title

Kriteria optimisasi menentukan bagaimana algoritma optimisasi mengurutkan hasil Anda setelah backtesting. Anda dapat memilih di antara opsi berikut:

  • Standard - serangkaian kriteria yang telah ditentukan sebelumnya yang dapat Anda tujukan untuk diminimalkan atau dimaksimalkan. Untuk melakukan ini, pilih kriteria dari menu dropdown di sebelah kanan dan pilih arah optimisasi di menu terkait di sebelah kiri. Untuk menambahkan kriteria baru, klik Add criterion.
  • Custom - kriteria kustom yang ditentukan dalam kode cBot Anda menggunakan metode GetFitness() seperti yang ditunjukkan dalam contoh di bawah ini.
1
2
3
4
5
protected override double GetFitness(GetFitnessArgs args)
{
    // Maximise the winning trades/losing trades ratio.
    return args.WinningTrades / args.LosingTrades;
}
1
2
3
4
5
6
protected override double GetFitness(GetFitnessArgs args)
{
    /* Maximise the winning trades/losing trades ratio
    while giving winning trades more weight. */
    return Math.Pow(args.WinningTrades, 2) / args.LosingTrades;
}

Perhitungan multi-kriteria

Jika beberapa kriteria digunakan untuk menghitung efektivitas parameter, cTrader akan menggunakan semuanya secara setara untuk menghitung nilai fitness untuk proses optimisasi.

Secara khusus, platform mengalikan nilai semua kriteria yang memaksimalkan dan secara terpisah mengalikan nilai semua kriteria yang meminimalkan. Selanjutnya, platform membagi nilai perkalian absolut untuk kriteria yang memaksimalkan dengan nilai yang sama untuk kriteria yang meminimalkan.

Pseudocode berikut menunjukkan secara tepat bagaimana nilai fitness multi-kriteria dihitung.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
numerator = 1.0
if (valuesToMaximize.Length > 0)
    numerator = Abs(Multiply(criteriaValuesToMaximize))

denominator = 1.0
if (valuesToMinimize.Length > 0)
    denominator += Abs(Multiply(criteriaValuesToMinimize))

/* The 'sign' variable can be either +` or -1 depending on whether
there are criteria for which their values are less than 0. */
sign = criteriaValuesToMinimize.Concat(criteriaValuesToMaximize).Any(v => v < 0) ? -1 : 1

fitness =  sign * numerator / denominator

Metode

Klik tombol Method (ditampilkan sebagai GA atau # tergantung pada opsi yang dipilih). Dalam menu di bawah ini, pilih metode optimisasi mana yang digunakan oleh platform.

Image title

Opsi berikut tersedia:

  • Genetic Algorithm - algoritma meniru proses evolusi biologis. Silakan lihat bagian terpisah untuk deskripsi detailnya.
  • Grid (#) - algoritma secara berurutan melakukan backtest pada setiap kemungkinan set parameter.

Catatan

Menurut perkiraan kami, algoritma genetika jauh lebih cepat untuk menemukan nilai parameter optimal.

Sumber daya

Klik tombol Resources untuk memilih persentase beban CPU Anda yang dialokasikan untuk backtesting. Geser slider untuk mengatur persentase penggunaan CPU.

Semakin banyak sumber daya yang Anda alokasikan, optimisasi akan semakin cepat selesai. Namun, Anda mungkin melihat penurunan kinerja saat menggunakan aplikasi lain.

Image title

Perhatikan bahwa sumber daya CPU juga dapat disesuaikan selama proses optimisasi itu sendiri.

Memulai dan mengelola prosedur optimisasi

Untuk melanjutkan optimisasi, klik tombol Play di sebelah kanan slider kalender. Tergantung pada sumber daya mesin Anda, pengaturan optimisasi, dan kompleksitas cBot, optimisasi mungkin memerlukan waktu.

Bar UI tepat di bawah slider kalender akan memberikan informasi tentang jumlah proses backtesting yang telah selesai, waktu yang telah berlalu dan perkiraan waktu yang tersisa.

Image title

Layar tengah di tab Optimisation, sementara itu, akan memberikan grid real-time yang berisi informasi tentang semua proses backtesting yang telah diselesaikan oleh algoritma.

Image title

Untuk menerapkan set parameter yang diuji selama proses tertentu, klik tombol Apply. Tombol ini hanya aktif jika tidak ada prosedur optimisasi yang sedang berjalan.

Atau, centang bendera Autoselect the best pass di sudut kiri atas agar cTrader secara otomatis memilih proses (dan parameter) yang telah mencapai hasil terbaik sesuai dengan kriteria optimisasi yang Anda tentukan.

Hasil optimisasi

Setelah optimisasi selesai, tabel tengah akan menampilkan daftar akhir semua proses backtesting dan hasilnya.

Tabel ini memiliki kolom-kolom berikut. Karena grid dapat dikonfigurasi sepenuhnya, kolom-kolom ini dapat digeser dan dipindahkan atau dinonaktifkan sama sekali setelah mengklik kanan tabel dan membatalkan pilihan mereka dari menu kontekstual.

Bidang Definisi
Proses Nomor proses.
Fitness Nilai yang menunjukkan seberapa baik proses tersebut sesuai dengan kriteria optimisasi.
Ekuitas Total ekuitas pada akhir proses.
Saldo Total saldo pada akhir proses.
Laba bersih Selisih antara saldo akhir dan saldo awal.
Trading Total jumlah posisi tertutup.
Trading yang menang Total jumlah trading yang untung yang dicapai selama proses.
Trading yang kalah Total jumlah trading yang rugi yang dicapai selama proses.
Faktor laba Rasio total laba/total rugi.
*Maks drawdown ekuitas (%) Persentase maksimum drawdown ekuitas.
Drawdown saldo maksimal (%) Persentase maksimum drawdown saldo.
Maks drawdown ekuitas Drawdown ekuitas maksimum yang ditentukan dalam mata uang deposit akun.
Drawdown saldo maksimal Drawdown saldo maksimum yang ditentukan dalam mata uang deposit akun.
Rerata hasil trading Rata-rata laba untuk semua trading yang dilakukan selama proses.
Parameter proses Klik tombol Apply di kolom ini untuk menerapkan parameter dari proses ini ke cBot Anda.

Pilih proses untuk melihat statistik terperinci tentangnya di tampilan di bawah grid tengah.

Tujuh tab pertama dalam tampilan ini memberikan informasi yang sama seperti tab yang sama di jendela Backtesting. Tab Pass parameters unik untuk optimisasi.

Parameter proses

Tab Parameter proses menyediakan informasi berikut.

Image title

cTrader akan menyorot semua parameter yang dioptimalkan dengan warna hijau sementara parameter tetap (tidak diaktifkan di menu Parameter) akan tetap tidak disorot.

Menyimpan dan memuat hasil optimisasi

cTrader juga memungkinkan untuk menyimpan dan memuat hasil optimisasi ke dan dari file .optres yang disimpan secara lokal.

Catatan

File .optres hanyalah kumpulan pasangan kunci-nilai dengan kunci yang mewakili berbagai pengaturan dan metrik optimisasi.

Kiat

Anda dapat menggunakan file .optres untuk terus menyempurnakan cBot Anda di beberapa mesin lokal tanpa kehilangan kemajuan apa pun. Anda juga dapat memasukkan data dari file ini ke alat AI generatif untuk mencoba mendeteksi pola apa pun dalam proses yang telah diselesaikan oleh cBot Anda.

Untuk menyimpan hasil optimisasi, tunggu hingga proses selesai dan klik ikon Simpan. Dalam dialog penjelajah file, ketik nama file dan simpan file tersebut.

Untuk memuat hasil optimisasi, klik ikon Muat dan pilih file yang diperlukan di jendela penjelajah file.

Image title