콘텐츠로 이동

cTrader에서 cBot 생성하기

이 문서는 Python 또는 C#으로 알고리즘 트레이딩을 위한 트레이딩 봇을 생성하고, 봇을 배포하여 cTrader에서 실행하는 단계를 설명합니다.

cTrader Windows 또는 Mac을 사용하여 트레이딩 봇을 빠르게 생성하거나 AI의 도움을 받을 수 있습니다.

Algo 앱의 cBots 탭에서 New 버튼을 클릭하여 알고리즘 생성 마법사를 엽니다.

cBot의 이름을 입력한 후 C#Python 중 프로그래밍 언어를 선택하세요.

생성 방법을 선택하세요:

  • 처음부터 - 새로운 트레이딩 봇은 기본 템플릿만 포함합니다.

  • 템플릿 사용 - 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;
    }
}

cBot Robot 속성과 TimeZoneAccessRights와 같은 선택적 속성은 cBot 클래스(SupercBot) 선언 앞에 위치합니다.

이러한 메서드는 기본적으로 포함되는 경우가 많습니다:

  • OnStart() 메서드는 cBot 인스턴스가 시작될 때마다 호출됩니다.
  • OnTick() 메서드는 모든 틱에서 호출됩니다.
  • OnBar() 메서드는 모든 바에서 호출됩니다.
  • OnStop() 메서드는 새로운 cBot 인스턴스가 작동을 멈출 때마다 호출됩니다.

OnTick() 메서드는 모든 틱에서 특정 작업을 수행하므로 CPU 사용량이 많습니다. 많은 트레이딩 경우에는 모든 틱에서 트레이딩 작업을 수행할 필요가 없습니다. OnBar() 메서드를 사용하는 것이 더 실용적입니다.

위 예제 스니펫에 표시된 메서드와 코드 유형은 봇의 동작을 설정하고 구성하는 유일한 방법이 아닙니다. 그러나 코딩을 처음 시작하는 경우 작업하기 가장 쉬운 방법입니다. 알고리즘에 대해 더 알아보려면 C# 기본부터 시작하고 cBot 코드 예제를 탐색하세요.

참고

참조에는 cTrader에서 알고리즘을 구축하기 위한 모든 클래스, 이벤트, 메서드, 변수 등이 포함되어 있으며, 전체 알고리즘 예제와 템플릿은 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

이러한 메서드는 기본적으로 포함되는 경우가 많습니다:

  • 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