콘텐츠로 이동

cTrader Algo 참조 및 가이드 사용 방법

cTrader는 광범위한 문서(현재 읽고 있는 부분 포함)와 교육용 동영상을 포함한 완전한 보조 자료 세트를 갖추고 있습니다. 이 글에서는 이 풍부한 정보를 효과적으로 사용하는 방법을 설명합니다. 알고리즘 API에는 많은 멤버가 있으며, 필요한 정보를 빠르게 얻는 방법을 아는 것이 중요합니다.

문서 업데이트

문서는 새로운 cTrader 릴리스에 맞춰 정기적으로 업데이트됩니다. 어떤 경우에는 cTrader에서 아직 접근할 수 없는 API 개선 사항에 대해 문서가 논의하는 것을 볼 수 있습니다. 이러한 경우는 향후 cTrader 버전에서 제공될 기능을 미리 엿보는 것으로 간주할 수 있습니다.

문서 및 가이드 접근

교육 자료를 cTrader Windows에서 바로 쉽게 찾을 수 있습니다. 이를 위해 Algo 애플리케이션을 열고 알고리즘을 선택하세요. 코드 편집기 창 오른쪽 열에서 플랫폼 내부에 완전히 통합된 API 문서를 볼 수 있습니다.

Image title

사실, 이 글을 읽고 있는 동안 cTrader 내부에 있을 가능성이 높습니다.

또는 cTrader 도움말 센터를 방문하여 알고리즘 트레이딩을 다루는 섹션을 열 수 있습니다. 여기서는 일반 cTrader Windows에서와 동일한 인터페이스와 구조를 볼 수 있습니다. 마지막으로, YouTube 채널을 방문하여 cTrader 알고리즘을 다루는 동영상 가이드를 시청할 수 있습니다. 이 모든 가이드는 도움말 센터와 통합 API 문서 내에 임베디드 동영상으로도 제공됩니다.

문서 탐색

문서에는 몇 가지 필수 섹션이 포함되어 있습니다.

C# 및 .NET 기본. C# 및 .NET의 핵심 원칙에 대한 간단한 소개로, 맞춤형 알고리즘을 만들기 시작하려는 모든 사람에게 적합합니다.

cBots지표. 이 가이드는 cBots와 지표를 처음부터 만드는 과정을 다루며, 자신의 알고리즘을 만들 때 자유롭게 재사용할 수 있는 여러 코드 스니펫을 제공합니다.

API 기능. 이 섹션의 문서는 Algo API의 여러 주요 기능, 특히 네트워크 접근 및 로컬 저장소와 함께 작업하는 방법을 자세히 설명합니다. 고급 cBot 작업고급 지표 작업 가이드에는 중첩 지표와 같은 복잡한 유형의 cTrader 알고리즘을 위한 코드 스니펫이 포함되어 있습니다.

참조. API 참조에는 모든 단일 API 멤버에 대한 설명이 포함되어 있어 특정 속성을 통해 얻거나 설정할 수 있는 것, 다양한 enum의 가능한 값, 특정 메서드가 반환하는 것에 대한 정보를 읽을 수 있습니다. 코드 편집기 창에서 특정 API 멤버 위에 마우스를 올리면 동일한 정보가 제공됩니다.

코드 스니펫 사용

광범위한 코드 스니펫은 이 문서의 주요 기능 중 하나입니다. 어떤 유형의 알고리즘을 만들고자 하든, 문서에 자유롭게 재사용할 수 있는 코드가 포함되어 있을 가능성이 높습니다. 이를 입증하기 위해, 우리는 문서에서 가져온 코드를 약간 수정하여 거의 완전히 실행되는 간단한 cBot을 만들 수 있습니다.

이를 위해 먼저 새로운 cBot을 생성합니다. 이는 새 cBot 버튼을 클릭하거나, 알고리즘 목록 상단의 드롭다운 메뉴를 열어 동일한 옵션을 선택하여 수행할 수 있습니다.

Image title

우리는 여러 심벌을 거래하는 간단한 cBot을 만들 것입니다. 뉴스를 거래하고 싶기 때문에, 해당 뉴스와 관련된 모든 심벌을 거래하는 알고리즘이 적합합니다.

이를 위해 통합 Algo API 문서를 열고 "multiple symbols"를 검색창에 입력합니다. 검색 결과에 따르면, cBots의 고급 작업 가이드에서 다른 심벌 거래에 대해 논의하는 하위 섹션이 있습니다. 이 특정 결과를 클릭하면 관련 코드 스니펫과 일부 보충 정보로 즉시 이동합니다. 우리는 이 스니펫을 즉시 cBot에 복사하여 붙여넣을 수 있습니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
  [Robot()]
  public class Sample_cBot : Robot
  {
    protected override void OnStart()
    {
        var symbol = Symbols.GetSymbol("GBPUSD");

        if (symbol is not null)
        {
            _ = ExecuteMarketOrder(TradeType.Sell, symbol.Name, symbol.VolumeInUnitsMin);
        }
    }
  }

코드 스니펫 위의 정보는 우리가 원하는 심벌을 찾기 위해 Symbols 컬렉션을 사용할 수 있다고 알려줍니다. 미국 재무부가 금리 사이클에 대해 또 다른 연설을 하고 있으며, 우리는 시작 시 여러 미국 기반 지수(단, cBot이 첨부된 심벌은 제외)에 대해 매도 포지션을 열고 싶다고 가정해 보겠습니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
[Robot()]
  public class Sample_cBot : Robot
  {
    protected override void OnStart()
    {
        var symbolOne = Symbols.GetSymbol("US 500");

        var symbolTwo = Symbols.GetSymbol("US 30");

        var symbolThree = Symbols.GetSymbol("US TECH 100");

        if (symbolOne is not null && symbolTwo is not null && symbolThree is not null)
        {
            ExecuteMarketOrder(TradeType.Sell, symbolOne.Name, symbolOne.VolumeInUnitsMin);
            ExecuteMarketOrder(TradeType.Sell, symbolTwo.Name, symbolTwo.VolumeInUnitsMin);
            ExecuteMarketOrder(TradeType.Sell, symbolThree.Name, symbolThree.VolumeInUnitsMin);
        }
    }
  }

시작 시, 우리의 cBot은 필요한 작업을 실행할 것입니다. API 문서를 참조함으로써 기존 코드를 재사용하고 필요에 맞게 약간만 수정하여 많은 시간을 절약할 수 있었습니다.

요약

cTrader는 플랫폼 내부를 포함한 여러 곳에서 API 문서에 접근할 수 있도록 합니다. 필요한 수정을 가한 후 문서에서 코드 스니펫을 재사용할 수 있기 때문에 알고리즘을 강력하게 만드는 매우 편리한 방법입니다. 또한 새로운 교육용 동영상을 출시할 때마다 업데이트를 받을 수 있도록 YouTube 채널을 구독하는 것을 적극 권장합니다.