Langkau tajuk talian

Cipta cBot dalam cTrader

Artikel ini menggariskan langkah-langkah untuk mencipta bot dagangan untuk dagangan algoritma dalam Python atau C#, melancarkan robot dan menjalankannya dalam cTrader.

Petua

Menggunakan cTrader Windows atau Mac, anda boleh mencipta robot dagangan dengan cepat, atau mendapatkan bantuan daripada AI.

Dalam tab cBots aplikasi Algo, klik butang New untuk membuka wizard penciptaan algoritma.

Masukkan nama untuk cBot anda, kemudian pilih bahasa pengaturcaraan antara C# dan Python.

Pilih kaedah penciptaan daripada:

  • From scratch - bot dagangan baharu akan mengandungi hanya templat asas.

  • Using a template - anda akan dapat memilih algoritma yang telah disediakan daripada senarai templat Python# atau C#, yang merangkumi pelbagai jenis cBot dan tindakan dagangan automatik.

Nota

Algoritma yang telah disediakan sudah mengandungi logik dagangan dan parameter yang boleh disesuaikan. cBot sedemikian sedia untuk dijalankan sebaik sahaja anda menyimpan dan membinanya.

Selepas anda mengklik Create, penyunting kod dibuka dan anda boleh mula menyunting kod robot dagangan.

Sunting kod

Bergantung pada kaedah penciptaan yang anda pilih, sampel robot dagangan mengandungi 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 cBot Robot berserta ciri pilihan seperti TimeZone dan AccessRights, mendahului pengisytiharan kelas cBot (SupercBot).

Kaedah ini sering disertakan secara lalai:

  • Kaedah OnStart() dipanggil setiap kali tika cBot anda dilancarkan.
  • Kaedah OnTick() dipanggil pada setiap tik.
  • Kaedah OnBar() dipanggil pada setiap bar.
  • Kaedah OnStop() dipanggil setiap kali tika cBot baharu anda berhenti beroperasi.

Kaedah OnTick() melakukan tindakan tertentu setiap tik, yang menjadikannya intensif CPU. Dalam kebanyakan kes dagangan, terdapat sedikit keperluan untuk melakukan operasi dagangan pada setiap tik. Menggunakan kaedah OnBar() adalah lebih praktikal.

Kaedah dan jenis kod yang ditunjukkan dalam cebisan contoh di atas bukanlah satu-satunya cara untuk menyediakan dan mengkonfigurasi tingkah laku bot. Walau bagaimanapun, ia adalah yang paling mudah untuk digunakan jika anda baru memulakan pengekodan. Untuk mengetahui lebih lanjut tentang algoritma, mulakan dengan asas C# dan terokai contoh kod cBot.

Nota

Rujukan merangkumi semua kelas, peristiwa, kaedah, pemboleh ubah, dll. untuk membina algoritma dalam cTrader, manakala contoh algoritma penuh dan templat tersedia dalam 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

Kaedah ini sering disertakan secara lalai:

  • Kaedah on_start dipanggil setiap kali tika cBot anda dilancarkan.
  • Kaedah on_tick dipanggil pada setiap tik.
  • Kaedah on_bar_closed dipanggil pada setiap bar.
  • Kaedah on_stop dipanggil setiap kali tika cBot baharu anda berhenti beroperasi.

Kaedah on_tick melakukan tindakan tertentu setiap tik, yang menjadikannya intensif CPU. Dalam kebanyakan kes dagangan, terdapat sedikit keperluan untuk melakukan operasi dagangan pada setiap tik. Menggunakan kaedah on_bar_closed adalah lebih praktikal.

Kaedah dan jenis kod yang ditunjukkan dalam cebisan contoh di atas bukanlah satu-satunya cara untuk menyediakan dan mengkonfigurasi tingkah laku cBot. Walau bagaimanapun, ia adalah yang paling mudah untuk digunakan jika anda baru memulakan pengekodan. Untuk mengetahui lebih lanjut tentang algoritma, mulakan dengan asas Python dan terokai contoh kod cBot.

Gunakan pengetahuan baharu anda untuk menyunting kod bot dagangan dan menyesuaikannya dengan keperluan anda.

Simpan dan bina

Simpan kod anda dengan mengklik butang Save di bahagian atas penyunting kod atau gunakan pintasan Ctrl+S.

Sebelum anda boleh menggunakan cBot anda, anda perlu mengesahkan kodnya dengan membina projek cBot. Klik butang Build di bahagian atas penyunting kod atau tekan Ctrl+B.

Simpan kod anda dengan mengklik ikon Save di bahagian atas penyunting kod atau gunakan pintasan Cmd+S.

Sebelum anda boleh menggunakan cBot anda, anda perlu mengesahkan kodnya dengan membina projek cBot. Klik ikon Build di bahagian atas penyunting kod atau tekan Cmd+B.

Apabila pembinaan berjaya, anda akan melihat mesej pengesahan dalam Hasil pembinaan. Jika pembinaan gagal, ringkasan semua ralat yang ditemui akan muncul.

Jika terdapat perubahan pada kod sejak pembinaan terakhir, tanda bintang akan muncul di sebelah ikon Build. Dalam kes ini, anda harus membina cBot sekali lagi sebelum memulakan tika.

Sebaik sahaja anda berjaya membina cBot, cBot tersebut sedia untuk bertindak, tetapi ia hanya mula berfungsi apabila anda memulakan tika.

Image title