Lewati ke isi

Cara mengoptimalkan cBot

Di cTrader, dimungkinkan untuk membuat cBot dengan sejumlah parameter yang dapat disesuaikan yang mempengaruhi perilaku mereka seperti tingkat perlindungan order atau volume order default. Ini menimbulkan pertanyaan tentang bagaimana tepatnya trader dapat menentukan nilai optimal dari parameter-parameter ini. Untungnya, cTrader menawarkan alat bawaan yang dapat menangani optimisasi, menghemat waktu berharga trader.

Dalam panduan pengguna ini, kami fokus pada bagaimana pengguna dapat mengoptimalkan cBot mereka dan menunjukkan mengapa optimisasi cBot penting bagi setiap pengembang Algo.

Bagaimana optimisasi cBot bekerja

Anggap optimisasi sebagai serangkaian backtesting. Setiap pass backtesting terjadi pada data yang sama tetapi menggunakan nilai yang berbeda untuk setiap parameter yang dikodekan dalam cBot.

Pertimbangkan cBot yang dapat bereaksi terhadap kasus ketika rata-rata bergerak periode cepat dan lambat saling bersilangan (rata-rata bergerak cepat melintasi rata-rata bergerak lambat). Kita ingin dapat menyesuaikan berapa banyak periode cepat dan lambat yang diterima cBot untuk data.

Oleh karena itu, cBot kita harus memiliki dua parameter berikut.

1
2
3
4
5
[Parameter("Slow Periods", Group = "Moving Average", DefaultValue = 10)]
public int SlowPeriods { get; set; }

[Parameter("Fast Periods", Group = "Moving Average", DefaultValue = 5)]
public int FastPeriods { get; set; }

Untuk menentukan nilai parameter optimal, kita perlu menguji secara ekstensif bagaimana cBot bekerja dalam berbagai kondisi pasar dan ketika diberikan nilai yang berbeda untuk dua parameter di atas. Jika kita melakukan pengujian ini secara manual, itu akan memakan banyak waktu tanpa memberikan serangkaian hasil yang mudah diinterpretasikan.

Untungnya, kita dapat membuat cTrader menjalankan pengujian ini secara otomatis, dan pada akhirnya, memberikan kita nilai parameter tertentu yang memungkinkan cBot mencapai hasil terbaik yang mungkin. Proses ini dikenal sebagai optimisasi cBot.

Akses optimisasi cBot

Untuk mengakses optimisasi cBot, lakukan tindakan berikut.

Pertama, pilih instansi cBot yang ingin Anda optimalkan. Jika perlu, buat instansi baru dengan mengeklik ikon plus dan memilih simbol, atau memilih Tambah instansi di menu konteks yang terbuka dengan mengeklik ikon Lainnya.

Setelah itu, beralih ke tab Optimisasi yang terletak tepat di sebelah kanan tab Backtesting. Layar tengah di tab ini harus terlihat sebagai berikut.

Konfigurasikan pengaturan optimisasi dan parameter cBot

Karena optimisasi adalah serangkaian backtesting, Anda dapat mengonfigurasi pengaturan yang sama seperti yang Anda lakukan untuk backtesting biasa. Untuk melakukannya, klik ikon roda gigi dan ubah nilai di menu yang baru dibuka.

Untuk memilih parameter yang tepat yang perlu dioptimalkan cTrader, klik tombol Parameter tepat di sebelah kanan ikon roda gigi.

Di sub-bagian ini, aktifkan atau nonaktifkan bendera di sebelah kiri setiap nama parameter untuk menyertakan/mengecualikan parameter ini dari proses optimisasi. Perhatikan bahwa parameter Timeframe ada untuk semua cBot terlepas dari konfigurasinya.

Kita ingin optimisasi menentukan nilai optimal periode lambat dan cepat yang akan dipertimbangkan cBot kita saat memulai. Namun, kita belum ingin mencoba jenis rata-rata bergerak lainnya.

Tentukan kriteria optimisasi dan algoritma

Dimungkinkan untuk menentukan kriteria mana yang akan digunakan cTrader untuk memilih nilai parameter optimal di antara backtesting yang akan dilakukan.

Untuk melakukannya, klik tombol Kriteria yang ditandai dengan ikon garis ke atas. Anda akan melihat bagian berikut.

Pengaturan untuk setiap kriteria mencakup dua menu. Di menu sebelah kiri, pilih apakah kriteria tersebut harus diminimalkan atau dimaksimalkan. Di menu sebelah kanan, pilih kriteria yang harus diminimalkan atau dimaksimalkan dari serangkaian opsi yang telah ditentukan. Kriteria baru dapat ditambahkan dengan mengklik Tambah kriteria.

Pada tangkapan layar di atas, kita ingin cTrader memaksimalkan laba bersih dan jumlah trading yang menang yang dilakukan oleh cBot kita. Pada saat yang sama, kita ingin meminimalkan persentase drawdown ekuitas maksimum.

Demi singkatnya, artikel ini tidak membahas kriteria optimisasi kustom dan metode GetFitness(). Untuk mempelajari lebih lanjut tentang hal tersebut, lihat dokumentasi teknis kami.

Untuk memilih algoritma optimisasi tertentu, klik tombol Algoritma di sebelah kanan tombol Kriteria. Sub-bagian berikut akan terbuka.

Algoritma pencarian menyeluruh sangat akurat tetapi membutuhkan banyak sumber daya. Ketika opsi Grid dipilih, cTrader membuat grid dari semua nilai parameter yang mungkin dan menjalankan semua backtest yang diperlukan untuk mengujinya. Meskipun proses ini menyeluruh, namun dapat memakan waktu.

Untungnya, cTrader menyertakan opsi Algoritma genetik. Algoritma ini meniru seleksi alam dengan menganggap setiap pass sebagai individu, parameter cBot sebagai gen, dan tingkat kesesuaian dengan kriteria optimisasi sebagai kemampuan beradaptasi. Algoritma genetik berhenti setelah mendeteksi bahwa perubahan pada nilai parameter tertentu akan menghasilkan pengembalian yang berkurang terhadap efektivitas cBot.

Karena algoritma genetik membutuhkan lebih sedikit sumber daya daripada pencarian menyeluruh namun tetap menghasilkan hasil yang akurat, kami menyarankan untuk memilih metode optimisasi ini.

Alokasikan sumber daya dan lakukan optimisasi cBot

Untuk melakukan optimisasi cBot, pilih rentang data historis yang akan digunakan cTrader untuk menjalankan backtesting. Untuk melakukannya, gunakan slider kalender di bagian atas tab Optimisasi atau menu di sebelah kiri dan kanannya.

Perhatikan bahwa optimisasi adalah proses yang membutuhkan banyak sumber daya dan mungkin memerlukan waktu untuk diselesaikan. Karena kita ingin menerima hasil dengan cepat, kita akan memilih satu tahun sebagai periode optimisasi.

cTrader juga memungkinkan untuk menentukan persentase pasti dari sumber daya CPU yang dialokasikan untuk proses optimisasi. Untuk menyesuaikan pengaturan ini, klik tombol Sumber Daya di sebelah kiri menu kalender paling kiri.

Di bagian yang baru muncul, geser slider untuk menambah atau mengurangi konsumsi CPU.

Setelah selesai mengalokasikan sumber daya, Anda seharusnya siap untuk melanjutkan dengan optimisasi. Untuk melakukannya, klik tombol Putar di sebelah kanan menu kalender paling kanan. Setelah cTrader memuat data historis, Anda akan melihat pass optimisasi ditambahkan ke layar tengah secara real-time.

Di bagian atas grid, Anda juga akan melihat jumlah pass saat ini, waktu yang telah berlalu, dan sisa waktu optimisasi.

Setiap pass yang selesai akan ditandai dengan tanda centang hijau. Semua pass di mana cBot Anda telah mencapai stop out akan ditandai dengan tanda centang abu-abu.

Catatan

Anda dapat menyimpan dan memuat hasil optimisasi, yang memungkinkan Anda untuk membawanya ke perangkat yang berbeda.

Interpretasikan dan terapkan hasil optimisasi

Di grid tengah, cTrader akan menampilkan beberapa metrik untuk setiap pass backtesting termasuk jumlah trading yang menang yang dilakukan oleh cBot Anda dan persentase drawdown ekuitas maksimum.

Yang perlu diperhatikan secara khusus adalah kolom Fitness yang menampilkan skor fitness untuk setiap pass. Anggap skor fitness sebagai metrik yang mengevaluasi sejauh mana suatu pass telah memaksimalkan/meminimalkan kriteria optimisasi yang Anda pilih. Skor fitness yang lebih tinggi menunjukkan tingkat kesesuaian yang lebih tinggi dengan kriteria ini.

Untuk dengan cepat memilih pass dengan skor fitness tertinggi, cukup aktifkan flag Pilih otomatis pass terbaik yang terletak tepat di atas grid tengah. Perhatikan bahwa Anda dapat mengaktifkan flag Pilih otomatis pass terbaik saat optimisasi berlangsung, dan cTrader akan secara dinamis mencari nilai parameter terbaik yang mungkin.

Seperti yang Anda lihat di kolom Fitness, pass nomor 33 memberikan skor fitness terbaik dibandingkan dengan semua pass lainnya.

Kita dapat dengan aman mengklik Terapkan di sebelah pass 33, dan nilai parameter yang digunakan selama pass ini akan segera diterapkan ke instance cBot kita.

Nilai default untuk parameter Periode lambat dan Periode cepat masing-masing adalah 10 dan 5.

Seperti halnya dengan backtesting, tampilan Trade Watch akan memberikan grafik ekuitas dan statistik trading terperinci yang merangkum tindakan yang diambil oleh cBot kita selama pass tertentu. Perhatikan bahwa grafik ekuitas hanya ditampilkan untuk 20 pass terbaik dari grid tengah.

Garis Saldo dan Ekuitas yang terus meningkat hanya memperkuat fakta bahwa pass 33 memberikan nilai parameter yang diperlukan agar cBot kita berfungsi secara efektif.

Ringkasan

Singkatnya, optimisasi cBot adalah alat yang kuat untuk memastikan bahwa penasihat trading otomatis Anda dikonfigurasi dengan tepat. Kami sangat menyarankan untuk melakukan beberapa putaran optimisasi dengan kriteria yang berbeda untuk mendapatkan gambaran tentang nilai parameter mana yang terbaik untuk cBot yang telah Anda kembangkan sendiri atau yang Anda peroleh dari pengembang lain.