Lewati ke isi

Buat cBot di cTrader

Artikel ini menguraikan langkah-langkah untuk membuat bot trading untuk trading algoritmik dalam Python atau C#, menerapkan robot dan menjalankannya di cTrader.

Kiat

Menggunakan cTrader Windows atau Mac, Anda dapat membuat robot trading dengan cepat, atau mendapatkan bantuan dari AI.

Di tab cBots dari aplikasi Algo, klik tombol New untuk membuka wizard pembuatan algoritma.

Masukkan nama untuk cBot Anda, lalu pilih bahasa pemrograman antara C# dan Python.

Pilih metode pembuatan dari:

  • From scratch - bot trading baru hanya akan berisi template dasar.

  • Using a template - Anda akan dapat memilih algoritma yang sudah jadi dari daftar template Python# atau C#, yang mencakup berbagai jenis cBot dan tindakan trading otomatis.

Catatan

Algoritma yang sudah jadi sudah berisi logika trading dan parameter yang dapat disesuaikan. cBot seperti itu siap dijalankan setelah Anda menyimpan dan membangunnya.

Setelah Anda mengklik Create, editor kode terbuka dan Anda dapat mulai mengedit kode robot trading.

Edit kode

Tergantung pada metode pembuatan yang Anda pilih, sampel robot trading berisi satu atau lebih elemen berikut:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class SupercBot : Robot
{
    // === Fields ===
    // Declare indicators, variables or parameters, state flags, etc. here

    protected override void OnStart()
    {
        // Called once when the cBot starts
        // Initialize indicators, variables, parameters, or subscribe to events
    }

    protected override void OnTick()
    {
        // Called on every market tick
        // Useful for high-frequency strategies (but may be CPU-intensive)
    }

    protected override void OnBar()
    {
        // Called at the start of each new bar (candle)
        // Preferred for most strategies to reduce CPU load
    }

    protected override void OnStop()
    {
        // Called when the cBot is stopped
        // Useful for cleanup, logging, or resetting state
    }

    // === Custom Methods ===
    // Add your own helper methods below to modularize your logic

    private void ExampleMethod()
    {
        // A placeholder for your custom logic (e.g., strategy evaluation)
    }

    private void ClosePositions()
    {
        // Example of a method that could close open positions
    }

    private bool CheckCondition()
    {
        // Example of a method that could return a boolean condition
        return false;
    }
}

Atribut Robot cBot beserta properti opsionalnya seperti TimeZone dan AccessRights, mendahului deklarasi kelas cBot (SupercBot).

Metode-metode berikut sering disertakan secara default:

  • Metode OnStart() dipanggil setiap kali sebuah instans cBot Anda diluncurkan.
  • Metode OnTick() dipanggil pada setiap tick.
  • Metode OnBar() dipanggil pada setiap bar.
  • Metode OnStop() dipanggil setiap kali sebuah instans cBot baru Anda berhenti beroperasi.

Metode OnTick() melakukan tindakan tertentu setiap tick, yang membuatnya intensif CPU. Dalam banyak kasus trading, jarang ada kebutuhan untuk melakukan operasi trading pada setiap tick. Menggunakan metode OnBar() lebih praktis.

Metode dan jenis kode yang ditunjukkan dalam cuplikan contoh di atas bukanlah satu-satunya cara untuk mengatur dan mengkonfigurasi perilaku bot. Namun, metode-metode tersebut adalah yang paling mudah digunakan jika Anda baru memulai dengan pengkodean. Untuk mempelajari lebih lanjut tentang algoritma, mulailah dengan dasar-dasar C# dan jelajahi contoh kode cBot.

Catatan

Referensi mencakup semua kelas, event, metode, variabel, dll. untuk membangun algoritma di cTrader, sementara contoh dan template algoritma lengkap tersedia di repositori GitHub.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class SupercBot():
    # === Fields ===
    # Declare indicators, variables, state flags, etc. here
    # self.example_indicator = None
    # self.some_flag = True

    def on_start(self):
        # Called once when the cBot starts
        # Initialize indicators, variables, parameters, or subscribe to events
        pass

    def on_tick(self):
        # Called on every market tick
        # Useful for high-frequency strategies (but may be CPU-intensive)
        pass

    def on_bar_closed(self):
        # Called at the start of each new bar (candle)
        # Preferred for most strategies to reduce CPU load
        pass

    def on_stop(self):
        # Called when the cBot is stopped
        # Useful for cleanup, logging, or resetting state
        pass

    # === Custom Methods ===
    # Add your own helper methods below to modularize your logic

    def example_method(self):
        # A placeholder for your custom logic (e.g., strategy evaluation)
        pass

    def close_positions(self):
        # Example of a method that could close open positions
        pass

    def check_condition(self):
        # Example of a method that could return a boolean condition
        return False

Metode-metode berikut sering disertakan secara default:

  • Metode on_start dipanggil setiap kali sebuah instans cBot Anda diluncurkan.
  • Metode on_tick dipanggil pada setiap tick.
  • Metode on_bar_closed dipanggil pada setiap bar.
  • Metode on_stop dipanggil setiap kali sebuah instans cBot baru Anda berhenti beroperasi.

Metode on_tick melakukan tindakan tertentu setiap tick, yang membuatnya intensif CPU. Dalam banyak kasus trading, jarang ada kebutuhan untuk melakukan operasi trading pada setiap tick. Menggunakan metode on_bar_closed lebih praktis.

Metode dan jenis kode yang ditunjukkan dalam cuplikan contoh di atas bukanlah satu-satunya cara untuk mengatur dan mengkonfigurasi perilaku cBot. Namun, metode-metode tersebut adalah yang paling mudah digunakan jika Anda baru memulai dengan pengkodean. Untuk mempelajari lebih lanjut tentang algoritma, mulailah dengan dasar-dasar Python dan jelajahi contoh kode cBot.

Terapkan pengetahuan baru Anda untuk mengedit kode bot trading dan menyesuaikannya dengan kebutuhan Anda.

Simpan dan build

Simpan kode Anda dengan mengklik tombol Save di bagian atas editor kode atau gunakan pintasan Ctrl+S.

Sebelum Anda dapat menggunakan cBot Anda, Anda perlu memvalidasi kodenya dengan mem-build proyek cBot. Klik tombol Build di bagian atas editor kode atau tekan Ctrl+B.

Simpan kode Anda dengan mengklik ikon Save di bagian atas editor kode atau gunakan pintasan Cmd+S.

Sebelum Anda dapat menggunakan cBot Anda, Anda perlu memvalidasi kodenya dengan mem-build proyek cBot. Klik ikon Build di bagian atas editor kode atau tekan Cmd+B.

Ketika build berhasil, Anda akan melihat pesan konfirmasi di Build result. Jika build gagal, ringkasan semua kesalahan yang ditemui akan muncul sebagai gantinya.

Jika ada perubahan pada kode sejak build terakhir, tanda bintang akan muncul di sebelah ikon Build. Dalam kasus ini, Anda harus mem-build cBot lagi sebelum memulai sebuah instans.

Setelah Anda berhasil mem-build cBot, cBot tersebut siap untuk digunakan, tetapi hanya akan mulai bekerja ketika Anda memulai sebuah instans.

Image title