Langkau tajuk talian

Mengoptimumkan cBot dalam cTrader

Artikel ini menerangkan cara untuk mengoptimumkan bot dagangan dalam cTrader Windows dan Mac.

Ia boleh menjadi sukar untuk menentukan set parameter awal yang optimum untuk cBot. Nasib baik, cTrader menawarkan ciri pengoptimuman cBot terbina dalam. Pengoptimuman mengambil kod anda dan menjalankannya beberapa kali dengan setiap pas berdasarkan pelbagai nilai parameter. Ia kemudian menyajikan anda dengan set keputusan yang boleh disesuaikan yang boleh anda gunakan untuk menentukan konfigurasi parameter yang optimum.

Untuk menggunakan ciri ini, pilih contoh cBot dan beralih ke tab Pengoptimuman.

Image title

Selepas itu, tentukan tempoh ujian belakang untuk pengoptimuman dengan menggunakan kalendar dropdown atau dengan menyeret pelungsur.

Image title

Tetapan pengoptimuman

Oleh kerana pengoptimuman pada dasarnya hanyalah siri ujian belakang, anda boleh menentukan tetapan ujian belakang sama seperti yang dilakukan dalam tab Ujian Belakang.

Parameter pengoptimuman

Klik butang Parameter di sebelah kiri pelungsur kalendar. Anda sepatutnya melihat tetingkap berikut.

Image title

Di dalamnya, tandakan bendera di sebelah parameter cBot yang anda ingin optimumkan. Parameter Kerangka masa tersedia untuk semua cBot.

Kriteria pengoptimuman

Tekan butang Kriteria yang terletak di sebelah kanan butang Parameter pengoptimuman. cTrader akan membuka tab berikut.

Image title

Kriteria pengoptimuman menentukan bagaimana algoritma pengoptimuman menilai keputusan anda selepas ujian belakang. Anda boleh memilih antara pilihan berikut:

  • Standard - satu siri kriteria yang telah ditentukan yang anda boleh sasarkan untuk sama ada meminimumkan atau memaksimumkan. Untuk melakukan ini, pilih kriteria daripada menu dropdown di sebelah kanan dan pilih arah pengoptimuman dalam menu berkaitan di sebelah kiri. Untuk menambah kriteria baharu, klik Tambah kriteria.
  • Tersuai - kriteria tersuai yang ditentukan dalam kod cBot anda menggunakan kaedah GetFitness() seperti yang ditunjukkan dalam contoh di bawah.
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;
}

Pengiraan pelbagai kriteria

Jika pelbagai kriteria digunakan untuk mengira keberkesanan parameter, cTrader akan menggunakan semuanya secara sama rata untuk mengira nilai kesesuaian untuk pas pengoptimuman.

Secara khusus, platform mendarab nilai semua kriteria yang memaksimumkan dan secara berasingan mendarab nilai semua kriteria yang meminimumkan. Selepas itu, ia membahagikan nilai pendaraban mutlak untuk kriteria yang memaksimumkan dengan nilai yang sama untuk kriteria yang meminimumkan.

Pseudokod berikut menunjukkan dengan tepat bagaimana nilai kesesuaian pelbagai kriteria dikira.

 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

Kaedah

Klik butang Kaedah (diwakili sama ada sebagai GA atau # bergantung pada pilihan yang dipilih). Dalam menu di bawah, pilih kaedah pengoptimuman yang digunakan oleh platform.

Image title

Pilihan berikut tersedia:

  • Algoritma Genetik - algoritma ini meniru proses evolusi biologi. Sila lihat bahagian berasingan untuk penerangan terperincinya.
  • Grid (#) - algoritma ini menguji belakang setiap set parameter yang mungkin secara berurutan.

Nota

Pada anggaran kami, algoritma genetik adalah jauh lebih cepat untuk mencari nilai parameter yang optimum.

Sumber

Klik butang Sumber untuk memilih peratusan beban CPU anda yang diperuntukkan untuk ujian belakang. Gerakkan pelungsur untuk menetapkan peratusan penggunaan CPU.

Semakin banyak sumber yang anda peruntukkan, semakin cepat proses pengoptimuman akan selesai. Walau bagaimanapun, anda mungkin melihat penurunan prestasi apabila menggunakan aplikasi lain.

Image title

Perhatikan bahawa sumber CPU juga boleh disesuaikan semasa pengoptimuman itu sendiri.

Memulakan dan menguruskan prosedur pengoptimuman

Untuk meneruskan pengoptimuman, klik butang Main di sebelah kanan pelungsur kalendar. Bergantung pada sumber mesin anda, tetapan pengoptimuman, dan kerumitan cBot, pengoptimuman mungkin mengambil masa.

Bar UI tepat di bawah pelungsur kalendar akan memberikan maklumat tentang bilangan pas ujian belakang yang telah selesai, masa yang telah berlalu dan anggaran masa yang tinggal.

Image title

Skrin tengah dalam tab Pengoptimuman, sementara itu, akan menyediakan grid masa nyata yang mengandungi maklumat tentang semua pas ujian belakang yang telah diselesaikan oleh algoritma.

Image title

Untuk menggunakan set parameter yang diuji semasa pas tertentu, klik butang Terapkan. Ia hanya menjadi aktif jika tiada prosedur pengoptimuman yang sedang berjalan.

Sebagai alternatif, tandakan bendera Pilih secara automatik pas terbaik di sudut kiri atas untuk cTrader memilih secara automatik pas (dan parameter) yang telah mencapai hasil terbaik yang mungkin mengikut kriteria pengoptimuman yang anda tentukan.

Keputusan pengoptimuman

Selepas pengoptimuman selesai, jadual tengah akan memaparkan senarai akhir semua pas ujian belakang dan keputusannya.

Jadual ini mempunyai lajur berikut. Oleh kerana grid ini boleh dikonfigurasi sepenuhnya, lajur-lajur ini boleh diseret dan dijatuhkan atau dinyahaktifkan sama sekali selepas mengklik kanan jadual dan menyahpilih mereka daripada menu kontekstual.

Medan Definisi
Pas Nombor pas.
Kesesuaian Nilai yang menunjukkan sebaik mana pas tersebut memenuhi kriteria pengoptimuman.
Ekuiti Jumlah ekuiti pada akhir pas.
Baki Jumlah baki pada akhir pas.
Keuntungan bersih Perbezaan antara baki akhir dan baki permulaan.
Dagangan Jumlah bilangan posisi tertutup.
Dagangan dimenangi Jumlah bilangan dagangan yang menguntungkan yang dicapai semasa pas.
Dagangan rugi Jumlah bilangan dagangan yang rugi yang dicapai semasa pas.
Faktor keuntungan Nisbah jumlah keuntungan/jumlah kerugian.
*Pengurangan ekuiti maksimum (%) Peratusan maksimum pengurangan ekuiti.
Pengurangan baki maksimum (%) Peratusan maksimum pengurangan baki.
Pengurangan ekuiti maksimum Pengurangan ekuiti maksimum yang dinyatakan dalam mata wang deposit akaun.
Pengurangan baki maksimum Pengurangan baki maksimum yang dinyatakan dalam mata wang deposit akaun.
Dagangan purata Purata keuntungan untuk semua dagangan yang dibuat semasa pas.
Parameter pas Klik butang Terapkan dalam lajur ini untuk menggunakan parameter daripada pas ini kepada cBot anda.

Pilih pas untuk melihat statistik terperinci tentangnya dalam paparan di bawah grid tengah.

Tujuh tab pertama dalam paparan ini memberikan maklumat yang sama seperti tab yang sama dalam tetingkap Ujian Belakang. Tab Parameter pas adalah unik untuk pengoptimuman.

Parameter pas

Tab Parameter pas menyediakan maklumat berikut.

Image title

cTrader akan menyerlahkan semua parameter yang dioptimumkan dalam warna hijau manakala sebarang parameter tetap (tidak diaktifkan dalam menu Parameter) akan kekal tidak diserlahkan.

Menyimpan dan memuatkan hasil pengoptimuman

cTrader juga membolehkan penyimpanan dan pemuatan hasil pengoptimuman ke dan dari fail .optres yang disimpan secara tempatan.

Nota

Fail .optres hanyalah koleksi pasangan kunci-nilai dengan kunci mewakili pelbagai tetapan dan metrik pengoptimuman.

Petua

Anda boleh menggunakan fail .optres untuk terus menghalusi cBot anda merentasi pelbagai mesin tempatan tanpa kehilangan sebarang kemajuan. Anda juga boleh menyuap data dari fail ini kepada alat AI generatif untuk cuba mengesan sebarang corak dalam lulus yang telah dilengkapkan oleh cBot anda.

Untuk menyimpan hasil pengoptimuman, tunggu sehingga proses selesai dan klik ikon Simpan. Dalam dialog penjelajah fail, taip nama fail dan simpan fail tersebut.

Untuk memuatkan hasil pengoptimuman, klik ikon Muat dan pilih fail yang diperlukan dalam tetingkap penjelajah fail.

Image title