Lewati ke isi

Cara membuat cBot untuk cTrader dalam 5 Menit

Dalam artikel ini dan video terkait, kami akan menjelaskan cara cepat untuk membuat cBot di cTrader Algo. cBot yang akan kita buat akan mengimplementasikan strategi trading sederhana yang disebut Three white soldiers dan three black crows. Anda dapat mempelajari lebih lanjut tentang strategi ini di basis pengetahuan kami.

Sebelum mengikuti instruksi kami, pastikan Anda telah mengunduh dan menginstal aplikasi cTrader Windows atau Mac dari situs web resmi. Jalankan, dan navigasikan ke bagian cTrader Algo. Anda dapat menemukannya di panel kiri. Klik tab Algo, dan bagian cTrader Algo akan muncul.

Tambahkan cBot baru

Klik tombol Baru di cTrader Algo untuk memulai membuat cBot baru. Masukkan nama, pilih bahasa pemrograman antara C# dan Python, dan lanjutkan hingga editor kode terbuka.

Tambahkan pengaturan cBot

Sebelum kita mulai mengimplementasikan strategi trading, kita akan melihat parameter dan metode dasar cBot. Anda juga dapat melihat dokumentasi kami untuk membiasakan diri dengan apa yang dilakukan oleh parameter dan metode yang berbeda.

  • Parameter cBot – memungkinkan Anda untuk mendefinisikan atribut yang dapat dikonfigurasi seperti volume trading atau jarak stop-loss/take-profit.

  • Metode cBot – mendefinisikan bagaimana cBot Anda berperilaku ketika peristiwa tertentu terjadi. Ada empat peristiwa utama yang perlu Anda tangani saat mengembangkan cBot cTrader, dan masing-masing dikelola oleh metode yang sesuai yang disediakan oleh cTrader. Metode-metode tersebut adalah OnStart(), OnTick(), OnBar(), OnStop() untuk C# dan on_start(), on_tick(), on_bar_closed(), on_stop() untuk Python. Perhatikan bahwa metode OnBar() untuk C# dan on_bar_closed() untuk Python tidak termasuk dalam template kode default.

Tabel berikut mendefinisikan keempat metode ini secara detail.

C# Python Tujuan
OnStart() on_start() Dipicu ketika instance cBot mulai beroperasi. Digunakan untuk menginisialisasi variabel apa pun yang Anda rencanakan untuk digunakan dalam cBot Anda seperti indikator, penghitung, penangan peristiwa atau timer.
OnTick() on_tick() Dipicu pada setiap tick (pembaruan harga) pada grafik trading di mana instance cBot berjalan. Umumnya digunakan untuk logika entri atau keluar cepat berdasarkan data real-time. Di dalam metode ini, Anda dapat memprogram kondisi entri dan keluar kustom serta fungsi tambahan lainnya yang perlu dijalankan ketika tick baru tiba.
OnBar() on_bar_closed() Dipicu pada penutupan setiap bar. Di dalam metode ini, Anda dapat memprogram kondisi entri dan keluar kustom atau fungsi lain yang perlu dijalankan pada pembentukan setiap bar baru.
OnStop() on_stop() Dipanggil ketika cBot berhenti. Digunakan untuk melakukan operasi akhir seperti menutup posisi, menyimpan keadaan dan lainnya

Tambahkan logika trading

Sekarang kita akan menambahkan kode untuk strategi trading kita. cBot kita harus membuka posisi beli ketika tiga bar hijau terbentuk pada grafik dan posisi jual ketika ada tiga bar merah berturut-turut.

Pertama, kita perlu mendefinisikan parameter cBot kita. Parameter ini akan sepenuhnya dapat disesuaikan dari UI cTrader. Kita akan mendefinisikan tiga parameter dalam cBot kita.

  1. Volume setiap trading.
  2. Stop loss dalam pip.
  3. Take profit dalam pip.

Tempelkan kode berikut ke dalam editor kode Anda tepat di bawah kurung kurawal setelah deklarasi kelas (public class NewcBot : Robot)

1
2
3
4
5
6
7
8
[Parameter(DefaultValue = 1000)]
public double Volume { get; set; }
        
[Parameter(DefaultValue = 10)]
public double TakeProfit { get; set; }
        
[Parameter(DefaultValue = 10)]
public double StopLoss { get; set; }

Catatan

cBot Python menggunakan parameter yang dapat disesuaikan yang dideklarasikan dalam file .cs mereka.

1
2
3
4
5
6
7
8
[Parameter(DefaultValue = 1000)]
public double Volume { get; set; }
        
[Parameter(DefaultValue = 10)]
public double TakeProfit { get; set; }
        
[Parameter(DefaultValue = 10)]
public double StopLoss { get; set; }

Sekarang kita perlu mengimplementasikan logika di balik strategi trading kita. Tempelkan kode berikut di metode OnBar() atau on_bar_closed() Anda. Ingat bahwa metode ini dipanggil setiap kali bar baru terbentuk.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
//Three White Soldiers
if(Bars.ClosePrices.Last(1) > Bars.OpenPrices.Last(1) 
&& Bars.ClosePrices.Last(2) > Bars.OpenPrices.Last(2)  
&& Bars.ClosePrices.Last(3) > Bars.OpenPrices.Last(3))
{
    ExecuteMarketOrder(TradeType.Buy, SymbolName, Volume, "", StopLoss, TakeProfit);
}
            
//Three Black Crows
if(Bars.ClosePrices.Last(1) < Bars.OpenPrices.Last(1) 
&& Bars.ClosePrices.Last(2) < Bars.OpenPrices.Last(2)  
&& Bars.ClosePrices.Last(3) < Bars.OpenPrices.Last(3))
{
    ExecuteMarketOrder(TradeType.Sell, SymbolName, Volume, "", StopLoss, TakeProfit);
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Three White Soldiers
if (close.Last(1) > open_.Last(1) and
    close.Last(2) > open_.Last(2) and
    close.Last(3) > open_.Last(3)):
    api.ExecuteMarketOrder(TradeType.Buy, api.SymbolName, api.Volume, "", api.StopLoss, api.TakeProfit)

# Three Black Crows
elif (close.Last(1) < open_.Last(1) and
      close.Last(2) < open_.Last(2) and
      close.Last(3) < open_.Last(3)):
    api.ExecuteMarketOrder(TradeType.Sell, api.SymbolName, api.Volume, "", api.StopLoss, api.TakeProfit)

Sekarang kita akan memeriksa kode lebih dekat. cTrader menyediakan akses ke bar historis grafik, memungkinkan kita untuk memeriksa apakah tiga bar terakhir semuanya hijau atau semuanya merah, masing-masing. Dalam metode OnBar() untuk C# dan on_bar_closed() untuk Python di atas, pertama-tama kami memeriksa apakah tiga bar terakhir semuanya hijau. Kemudian kita mengevaluasi apakah bar-bar ini semuanya merah.

Jika salah satu dari dua kondisi tersebut benar, kami menempatkan order pasar menggunakan metode ExecuteMarketOrder(). Metode ini memerlukan beberapa input (argumen), dengan yang paling penting adalah arah trading, simbol, volume trading, stop loss, dan take profit.

Dalam kasus kami, arah order (TradeType.Buy, TradeType.Sell) ditentukan oleh kondisi strategi trading. Nama simbol diambil langsung dari grafik tempat cBot kami berjalan SymbolName. Volume trading, stop loss, dan take profit (C#'s Volume, StopLoss, TakeProfit dan Python's VolumeInLots, StopLossInPips, TakeProfitInPips) semuanya diambil dari parameter cBot yang kami definisikan.

Build dan jalankan cBot

Sekarang kita perlu memeriksa apakah cBot kita berhasil di-build. Secara default, jendela hasil build terletak tepat di bawah editor kode. Jika Anda tidak melihatnya, klik tombol Layout di bilah paling atas UI cTrader dan pilih Build Result. Pintasan keyboard untuk tindakan ini adalah Ctrl + W

Setelah itu, klik tombol Build yang terletak di bilah paling atas UI cTrader. Atau, klik kanan cBot Anda dan klik Build di menu yang baru muncul, atau cukup tekan Ctrl + B.

Image title

Jika build berhasil, Anda akan melihat pesan berwarna hijau di area Build Result di bagian bawah editor kode.

Image title

Atau, jika ada masalah dengan kode Anda, Anda akan melihat pesan merah dan ringkasan detail semua kesalahan build.

Image title

Setelah cBot Anda berhasil di-build, Anda dapat mulai menggunakannya. Yang perlu Anda lakukan hanyalah menambahkan instance pada grafik trading. Untuk melakukannya, cukup klik ikon + di sebelah kanan nama cBot Anda. Anda akan melihat daftar semua simbol yang dapat Anda gunakan untuk menjalankan cBot Anda.

Image title

Kita akan memilih EURUSD. Setelah Anda memilih simbol, instance cBot baru akan ditambahkan. Anda akan melihat item baru dalam daftar cBot dengan nama simbol dan timeframe yang ingin Anda tradingkan.

Anda juga akan melihat parameter yang telah Anda kodekan di tab Parameters tepat di bawah grafik trading.

Image title

Anda dapat mengubah parameter ini sesuai keinginan Anda atau membiarkannya pada nilai default.

Selain itu, Anda akan melihat tombol Play di bagian atas grafik EURUSD.

Image title

Untuk meluncurkan instance Anda, tekan tombol ini. Atau, salinan tombol ini juga terletak di sebelah kanan instance Anda dalam daftar cBot di sebelah kiri. Salah satu dari tombol ini akan memulai cBot.

Setelah mengeklik salah satu tombol, Anda akan melihatnya berubah menjadi oranye, yang berarti instance cBot kita sekarang sedang berjalan. Di tab Log, Anda juga akan melihat baris baru yang menyatakan bahwa cBot telah dimulai.

Lakukan backtesting cBot

cBot kita mungkin membutuhkan waktu lama untuk membuka posisi pada grafik trading riil. Kita akan menjalankan backtest cepat untuk melihatnya beraksi pada data historis. Untuk melakukan ini, buka tab Backtest.

Image title

Gunakan penggeser kalender di dekat bagian atas layar untuk memilih rentang tanggal yang ingin Anda gunakan untuk backtesting. Aktifkan flag Visual mode untuk melacak hasil backtesting saat terjadi.

Kita akan menggeser penggeser mundur satu bulan. Klik tombol Play untuk meluncurkan cBot pada data historis yang dipilih.

Setelah itu, Anda akan dapat melihat posisi baru dibuka dan/atau ditutup di tab tepat di bawah grafik trading dan di sebelah kanan bagian Parameters. Secara khusus, setelah mendeteksi salah satu dari dua pola yang telah kita kodekan, cBot akan menempatkan order beli atau jual.

Menjalankan backtest adalah cara yang berguna untuk menganalisis apakah cBot Anda bekerja dengan benar.

Ringkasan

Kami berharap artikel ini telah membantu dalam mendemonstrasikan bagaimana Anda dapat membuat robot trading otomatis menggunakan cTrader.

Image title