콘텐츠로 이동

cTrader에서 맞춤형 지표를 생성하는 방법

이 문서와 해당 비디오에서는 cTrader에서 새로운 맞춤형 지표를 생성하는 방법에 대해 논의합니다. Simple Moving Average 지표를 생성하고 지표 매개변수를 빠르게 맞춤 설정하는 방법을 보여드리겠습니다.

우리의 지시를 따르기 전에 공식 웹사이트에서 cTrader Windows 또는 cTrader Mac 애플리케이션을 다운로드하여 설치했는지 확인하세요. 애플리케이션을 실행하고 cTrader Algo 섹션으로 이동하세요. 왼쪽 패널에서 Algo 탭을 찾아 클릭합니다. 이제 cTrader Algo 인터페이스가 표시될 것입니다.

새로운 맞춤형 지표 추가

새로운 맞춤형 지표를 생성하려면 New 버튼을 클릭하고 Blank를 선택해야 합니다. 새 지표가 지표 목록 하단에 나타나고 오른쪽 패널에 코드 템플릿이 표시됩니다.

다음으로 지표의 이름을 기본 이름에서 변경합니다. 이를 위해 지표를 마우스 오른쪽 버튼으로 클릭하고 Rename을 클릭하거나 지표를 선택하고 F2를 누릅니다. 우리는 지표의 새 이름으로 Simple moving average를 입력할 것입니다. 완료되면 Enter를 누르세요. 이 시점에서 맞춤형 지표의 로직과 공식을 코딩할 준비가 되었습니다.

지표 구조 보기

시작하기 전에, 코드 편집기 창에 표시된 지표 코드 구조를 간단히 살펴보겠습니다. 이 구조에는 기본 매개변수 설정과 지표를 계산하고 차트에 표시하는 방법이 포함되어 있습니다.

먼저, 모든 지표에는 클래스 속성을 포함하는 섹션이 있습니다. 여기서 지표가 가지고 있는 액세스 권한, 지표가 차트에 표시될 위치, 지표가 사용하는 시간대, 지표 스케일링 및 기타 여러 고급 설정을 구성할 수 있습니다.

또한 모든 새로운 지표 코드 템플릿은 NewIndicator라는 클래스를 정의하며, 이 클래스는 모든 지표 이벤트와 사용자 정의 메서드를 포함합니다. 클래스 이름 선언 뒤에는 : Indicator가 따라옵니다. 이는 NewIndicator 클래스가 Indicator 기본 클래스를 상속한다는 것을 의미하며, 이 기본 클래스에는 사용자 정의 지표를 구축할 때 접근할 모든 미리 정의된 객체가 포함되어 있습니다.

지표 코드 구조와 객체 지향 프로그래밍의 상속 원칙에 대한 더 자세한 검토는 기술 문서에서 제공됩니다.

아래 섹션에서는 모든 기본 지표 설정을 포함하는 코드 블록을 볼 수 있습니다. 처음에는 이 섹션에 다음 코드만 포함됩니다.

1
2
3
4
5
[Parameter(DefaultValue = "Hello world!")]
public string Message { get; set; }

[Output("Main")]
public IndicatorDataSeries Result { get; set; }

매개변수 선언 바로 아래에는 지표 메서드가 표시됩니다. 메서드는 지표가 시작될 때와 새로운 가격 데이터가 지표에 입력될 때 실행되는 특정 이벤트로 생각할 수 있습니다. 다음 표는 세 가지 주요 지표 메서드를 정의합니다.

메서드 이름 정의
Initialize() 이 이벤트 메서드는 지표가 차트에 연결될 때 호출됩니다. 지표에서 사용할 변수를 초기화하는 데 사용됩니다. 또한 다른 지표의 공식을 사용하여 단일 지표를 생성하기 위해 추가 지표를 정의하고 참조할 수도 있습니다.
OnCalculate() 이 메서드는 들어오는 각 틱 데이터에 대해 호출됩니다. 이 메서드 내에서 들어오는 데이터를 처리하여 지표가 표시해야 할 다음 플롯 라인을 계산하는 로직을 코딩할 수 있습니다.
OnExcepion() 이 메서드는 지표가 예외를 만났을 때 호출됩니다. 이 메서드를 사용하여 오류를 캡처할 때 지표가 수행해야 할 작업을 정의할 수 있습니다. 이 메서드는 기본 지표 코드 템플릿에 없습니다.

지표 코드 작성

이제 Simple Moving Average 지표에 사용자 정의 코드를 추가해 보겠습니다. 우리의 지표는 현재 차트 유형 위에 오버레이로 트레이딩 차트에 표시됩니다.

먼저, 앞서 논의한 대로 지표 클래스 속성을 선언해야 합니다. 다음 속성 설정을 지표에 추가할 것입니다.

1
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AutoRescale = false, AccessRights = AccessRights.None)] 

위 코드를 다음과 같이 해석할 수 있습니다:

  • IsOverlay = true - 지표는 선택한 차트 유형에 따라 캔들, Range 바, 렌코 벽돌 또는 기타 요소 위에 플롯됩니다.
  • TimeZone = TimeZones.UTC - 지표는 모든 지표의 기본값인 협정 세계시(UTC)를 사용합니다. 이 속성의 값을 변경하는 것은 지표가 계산에서 날짜 및 시간 기능을 사용하는 경우에만 권장됩니다.
  • AutoRescale = false - 이 속성은 지표가 연결된 차트를 자동으로 재조정할지 여부를 정의합니다. 이 속성의 값이 false이므로, 우리의 지표는 차트를 재조정하지 않습니다.
  • AccessRights = AccessRights.None - 지표는 인터넷에 접근하거나 로컬 머신의 파일을 조작할 수 없습니다.

이제 지표의 매개변수를 정의할 수 있습니다. 이러한 설정은 지표를 차트에 추가한 후 설정 패널에서 조정할 수 있습니다. 다음 매개변수를 코딩할 것입니다:

  • 지표 공식의 데이터 소스.
  • 공식에 사용되는 기간.
  • 지표 출력 결과 플롯 라인.

다음 스니펫을 지표에 추가합니다.

1
2
3
4
5
6
7
8
[Parameter("Source")]
public DataSeries Source { get; set; }

[Parameter("Periods", DefaultValue = 14)]
public int Periods { get; set; }

[Output("Main", LineColor = "Turquoise")]
public IndicatorDataSeries Result { get; set; }

Periods 매개변수의 기본값을 14로, 기본 라인 색상을 turquoise로 설정할 것입니다. 그러나 이러한 매개변수를 cTrader에서 지원하는 거의 모든 기본값으로 설정할 수 있습니다.

이제 Calculate() 이벤트 메서드를 사용하여 지표 출력을 차트에 플롯하는 코드를 추가할 수 있습니다.

1
2
3
4
5
6
7
8
9
public override void Calculate(int index)
{
    var sum = 0.0;

    for (var i = index - Periods + 1; i <= index; i++)
    sum += Source[i];

    Result[index] = sum / Periods;
}

이 코드는 지표 계산 결과를 이전에 정의한 Result 매개변수에 할당합니다.

지표를 빌드하고 테스트하기

지표 코드 작성을 마치면, cTrader UI의 최상단 바에 있는 빌드 버튼을 클릭할 수 있습니다. 또는 지표를 마우스 오른쪽 버튼으로 클릭하고 새로 열린 메뉴에서 빌드를 선택하거나 Ctrl + B를 누를 수도 있습니다.

빌드가 성공하면 코드 편집기 하단의 빌드 결과 영역에 초록색 메시지가 표시됩니다.

Image title

그러나 코드에 문제가 있는 경우 빨간색 메시지와 모든 빌드 오류에 대한 상세 요약이 표시됩니다.

Image title

지표를 성공적으로 빌드한 후, 이제 인스턴스를 생성할 수 있습니다. 가장 간단한 방법은 지표를 마우스 오른쪽 버튼으로 클릭하고 인스턴스 추가 옵션을 선택하는 것입니다.

Image title

이렇게 하면 EURUSDh1 차트에 대해 새로운 지표 인스턴스가 생성됩니다. 그러나 인스턴스를 클릭하고 관련 메뉴를 열어 차트 유형, 시간 프레임 및 심벌을 변경할 수 있습니다.

새로 나타난 매개변수 탭에는 이전에 코딩한 세 가지 사용자 지정 가능한 매개변수가 표시됩니다. 이 매개변수를 그대로 두거나 cTrader UI에서 직접 값을 변경할 수 있습니다.

이제 트레이딩 차트에 지표 출력이 표시됩니다. 이 경우, Simple Moving Average를 나타내는 청록색 선이 표시됩니다.

선을 마우스 오른쪽 버튼으로 클릭하면 지표 매개변수를 사용자 지정할 수 있는 새 창이 나타납니다. 예를 들어, 출력 선의 색상을 청록색에서 파란색으로 변경할 수 있습니다. 또한 선의 두께를 조정할 수도 있습니다. 변경 사항을 저장하려면 확인을 클릭하세요.

참고

cTrader는 사용자 지정 지표의 인스턴스 출력과 코드 편집기 창 사이를 빠르게 전환할 수 있습니다. 이 기능은 특정 지표 매개변수나 사용자 지정 계산 로직을 빠르게 테스트하기에 이상적인 도구입니다.

라이브 차트에 지표 추가하기

이제 cTrader의 트레이드 탭으로 전환하여 사용자 지정 지표를 라이브 차트에 추가하겠습니다. 분석하려는 심벌의 차트를 엽니다.

상단 메뉴에서 지표 아이콘을 클릭하여 새 섹션을 엽니다.

그 후 사용자 지정을 선택하고 새로 나타난 메뉴에서 생성한 사용자 지정 지표(Simple Moving Average)를 선택합니다.

지표 매개변수를 사용자 지정할 수 있는 새 창이 나타납니다. 선호하는 값을 선택한 후 확인을 클릭하여 선택한 심벌의 차트에 지표를 추가합니다.

지표 설정 창으로 돌아가려면 지표 출력을 마우스 오른쪽 버튼으로 클릭하세요. 이 경우, 청록색 선을 마우스 오른쪽 버튼으로 클릭할 수 있습니다. 또는 차트에서 지표 이름 위에 마우스를 올렸을 때 나타나는 속성 아이콘을 클릭할 수도 있습니다.

지표 설정 창이 나타나며, 플롯된 선의 색상과 두께를 변경할 수 있습니다.

Image title