ข้ามไปที่เนื้อหา

สร้าง cBot ใน cTrader

บทความนี้อธิบายขั้นตอนในการสร้างบอทเทรดดิ้งสำหรับการเทรดด้วยอัลกอริทึมใน Python หรือ C# ปรับใช้หุ่นยนต์และรันใน cTrader

เคล็ดลับ

การใช้ cTrader Windows หรือ Mac คุณสามารถ สร้างหุ่นยนต์เทรดดิ้งได้อย่างรวดเร็ว หรือขอ ความช่วยเหลือจาก AI

ในแท็บ cBots ของแอป Algo คลิกปุ่ม New เพื่อเปิดตัวช่วยสร้างอัลกอริทึม

ป้อนชื่อสำหรับ cBot ของคุณ จากนั้นเลือกภาษาโปรแกรมระหว่าง C# และ Python

เลือกวิธีการสร้างจาก:

  • From scratch - บอทเทรดดิ้งใหม่จะมีเพียงเทมเพลตพื้นฐานเท่านั้น

  • Using a template - คุณจะสามารถเลือกอัลกอริทึมที่สร้างไว้ล่วงหน้าจากรายการเทมเพลต Python# หรือ C# ซึ่งครอบคลุมประเภท cBot และการดำเนินการเทรดอัตโนมัติที่หลากหลาย

หมายเหตุ

อัลกอริทึมที่สร้างไว้ล่วงหน้ามีตรรกะการเทรดและพารามิเตอร์ที่ปรับแต่งได้อยู่แล้ว cBot เหล่านี้พร้อมที่จะรันทันทีที่คุณบันทึกและสร้าง

หลังจากที่คุณคลิก Create โค้ดเอดิเตอร์ จะเปิดขึ้นและคุณสามารถเริ่มแก้ไขโค้ดของหุ่นยนต์เทรดดิ้งได้

แก้ไขโค้ด

ขึ้นอยู่กับวิธีการสร้างที่คุณเลือก ตัวอย่างหุ่นยนต์เทรดดิ้งจะมีองค์ประกอบหนึ่งหรือมากกว่าต่อไปนี้:

 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;
    }
}

แอตทริบิวต์ Robot ของ cBot พร้อมด้วยคุณสมบัติเสริม เช่น TimeZone และ AccessRights นำหน้าการประกาศคลาส cBot (SupercBot)

เมธอดเหล่านี้มักถูกรวมไว้โดยค่าเริ่มต้น:

  • เมธอด OnStart() จะถูกเรียกทุกครั้งที่อินสแตนซ์ของ cBot ของคุณเริ่มทำงาน
  • เมธอด OnTick() จะถูกเรียกในทุกติ๊ก
  • เมธอด OnBar() จะถูกเรียกในทุกแท่งเทียน
  • เมธอด OnStop() จะถูกเรียกทุกครั้งที่อินสแตนซ์ของ cBot ใหม่ของคุณหยุดทำงาน

เมธอด OnTick() จะดำเนินการบางอย่างในทุกติ๊ก ซึ่งทำให้ใช้ CPU มาก ในหลายกรณีของการเทรด มีความจำเป็นน้อยมากที่จะต้องดำเนินการเทรดในแต่ละติ๊ก การใช้เมธอด OnBar() จะมีประโยชน์มากกว่า

เมธอดและประเภทของโค้ดที่แสดงในตัวอย่างสนิปเป็ทด้านบนไม่ใช่วิธีเดียวในการตั้งค่าและกำหนดค่าพฤติกรรมของบอท อย่างไรก็ตาม พวกมันเป็นวิธีที่ง่ายที่สุดในการทำงานหากคุณเพิ่งเริ่มต้นเขียนโค้ด หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับอัลกอริทึม ให้เริ่มต้นด้วย พื้นฐาน C# และสำรวจ ตัวอย่างโค้ด cBot

หมายเหตุ

References รวมถึงคลาส อีเวนต์ เมธอด ตัวแปร ฯลฯ ทั้งหมดสำหรับการสร้างอัลกอริทึมใน cTrader ในขณะที่ตัวอย่างอัลกอริทึมและเทมเพลตฉบับเต็มมีอยู่ใน GitHub repository

 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

เมธอดเหล่านี้มักถูกรวมไว้โดยค่าเริ่มต้น:

  • เมธอด on_start จะถูกเรียกทุกครั้งที่อินสแตนซ์ของ cBot ของคุณเริ่มทำงาน
  • เมธอด on_tick จะถูกเรียกในทุกติ๊ก
  • เมธอด on_bar_closed จะถูกเรียกในทุกแท่งเทียน
  • เมธอด on_stop จะถูกเรียกทุกครั้งที่อินสแตนซ์ของ cBot ใหม่ของคุณหยุดทำงาน

เมธอด on_tick จะดำเนินการบางอย่างในทุกติ๊ก ซึ่งทำให้ใช้ CPU มาก ในหลายกรณีของการเทรด มีความจำเป็นน้อยมากที่จะต้องดำเนินการเทรดในแต่ละติ๊ก การใช้เมธอด on_bar_closed จะมีประโยชน์มากกว่า

เมธอดและประเภทของโค้ดที่แสดงในตัวอย่างสนิปเป็ทด้านบนไม่ใช่วิธีเดียวในการตั้งค่าและกำหนดค่าพฤติกรรมของ cBot อย่างไรก็ตาม พวกมันเป็นวิธีที่ง่ายที่สุดในการทำงานหากคุณเพิ่งเริ่มต้นเขียนโค้ด หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับอัลกอริทึม ให้เริ่มต้นด้วย พื้นฐาน Python และสำรวจ ตัวอย่างโค้ด cBot

นำความรู้ใหม่ของคุณมาใช้ในการแก้ไขโค้ดบอทเทรดดิ้งและปรับให้เหมาะกับความต้องการของคุณ

บันทึกและสร้าง

บันทึกโค้ดของคุณโดยคลิกปุ่ม บันทึก ที่ด้านบนของโปรแกรมแก้ไขโค้ด หรือใช้ทางลัด Ctrl+S

ก่อนที่คุณจะสามารถใช้ cBot ของคุณได้ คุณต้องตรวจสอบโค้ดโดยการสร้างโปรเจกต์ cBot คลิกปุ่ม สร้าง ที่ด้านบนของโปรแกรมแก้ไขโค้ด หรือกด Ctrl+B

บันทึกโค้ดของคุณโดยคลิกไอคอน บันทึก ที่ด้านบนของโปรแกรมแก้ไขโค้ด หรือใช้ทางลัด Cmd+S

ก่อนที่คุณจะสามารถใช้ cBot ของคุณได้ คุณต้องตรวจสอบโค้ดโดยการสร้างโปรเจกต์ cBot คลิกไอคอน สร้าง ที่ด้านบนของโปรแกรมแก้ไขโค้ด หรือกด Cmd+B

เมื่อการสร้างสำเร็จ คุณจะเห็นข้อความยืนยันใน ผลลัพธ์การสร้าง หากการสร้างล้มเหลว จะปรากฏสรุปข้อผิดพลาดทั้งหมดที่พบแทน

หากมีการเปลี่ยนแปลงในโค้ดตั้งแต่การสร้างครั้งล่าสุด จะมีเครื่องหมายดอกจันปรากฏข้างไอคอน สร้าง ในกรณีนี้ คุณควรสร้าง cBot อีกครั้งก่อนเริ่มต้นอินสแตนซ์

เมื่อคุณสร้าง cBot สำเร็จแล้ว cBot จะพร้อมใช้งาน แต่จะเริ่มทำงานเมื่อคุณ เริ่มต้นอินสแตนซ์ เท่านั้น

Image title