콘텐츠로 이동

cBot을 최적화하는 방법

cTrader에서는 주문 보호 수준 또는 기본 주문 볼륨과 같은 동작에 영향을 미치는 사용자 정의 매개변수를 가진 cBot을 생성할 수 있습니다. 이로 인해 트레이더가 이러한 매개변수의 최적 값을 어떻게 결정할 수 있는지에 대한 질문이 제기됩니다. 다행히 cTrader는 최적화를 처리할 수 있는 내장 도구를 제공하여 트레이더에게 귀중한 시간을 절약해 줍니다.

이 사용자 가이드에서는 사용자가 자신의 cBot을 최적화하는 방법에 초점을 맞추고 cBot 최적화가 모든 Algo 개발자에게 필수적인 이유를 설명합니다.

cBot 최적화 작동 방식

최적화를 일련의 백테스트로 생각해 보세요. 각 백테스트 패스는 동일한 데이터에서 발생하지만 cBot에 코딩된 매개 변수에 대해 다른 값을 사용합니다.

빠른 및 느린 기간 Moving Averages가 서로 교차할 때(빠른 Moving Average가 느린 Moving Average를 교차할 때) 반응할 수 있는 cBot을 고려해 보세요. 우리는 cBot이 얼마나 많은 빠른 및 느린 기간 동안 데이터를 받을지 사용자 정의할 수 있기를 원합니다.

따라서 우리의 cBot은 다음과 같은 두 가지 매개 변수를 가져야 합니다.

1
2
3
4
5
[Parameter("Slow Periods", Group = "Moving Average", DefaultValue = 10)]
public int SlowPeriods { get; set; }

[Parameter("Fast Periods", Group = "Moving Average", DefaultValue = 5)]
public int FastPeriods { get; set; }

최적의 매개 변수 값을 정의하기 위해, 우리는 다양한 시장 조건과 위의 두 매개 변수에 대해 다른 값을 사용할 때 cBot이 어떻게 작동하는지 광범위하게 테스트해야 합니다. 이러한 테스트를 수동으로 수행한다면, 해석하기 쉬운 결과 집합을 제공하지 않고도 많은 시간이 소요될 것입니다.

다행히도, 우리는 cTrader가 이러한 테스트를 자동으로 실행하고, 테스트가 끝나면 cBot이 가능한 최상의 결과를 달성할 수 있는 특정 매개 변수 값을 제공하도록 할 수 있습니다. 이 과정을 cBot 최적화라고 합니다.

cBot 최적화에 액세스

cBot 최적화에 액세스하려면 다음 작업을 수행하세요.

먼저, 최적화하려는 cBot 인스턴스를 선택하세요. 필요한 경우, 플러스 아이콘을 클릭하고 심볼을 선택하거나, 더 보기 아이콘을 클릭하여 열리는 컨텍스트 메뉴에서 인스턴스 추가를 선택하여 새 인스턴스를 생성하세요.

그런 다음, 백테스트 탭 바로 오른쪽에 있는 최적화 탭으로 전환하세요. 이 탭의 중앙 화면은 다음과 같이 표시되어야 합니다.

최적화 설정 및 cBot 매개 변수 구성

최적화는 일련의 백테스트이므로, 일반적인 백테스트와 동일한 설정을 구성할 수 있습니다. 이를 위해, 톱니바퀴 아이콘을 클릭하고 새로 열린 메뉴에서 값을 변경하세요.

cTrader가 최적화해야 할 정확한 매개 변수를 선택하려면, 톱니바퀴 아이콘 바로 오른쪽에 있는 매개변수 버튼을 클릭하세요.

이 하위 섹션에서 각 매개 변수 이름 왼쪽에 있는 플래그를 활성화 또는 비활성화하여 최적화 프로세스에 이러한 매개 변수를 포함/제외할 수 있습니다. 시간 프레임 매개 변수는 구성에 관계없이 모든 cBot에 존재합니다.

우리는 최적화가 시작 시 cBot이 고려할 느린 기간과 빠른 기간의 최적 값을 결정하기를 원합니다. 그러나 아직 다른 이동 평균 유형을 시도하고 싶지는 않습니다.

최적화 기준과 알고리즘 정의

cTrader가 수행할 백테스트 패스 중에서 최적의 매개변수 값을 선택하기 위해 사용할 정확한 기준을 결정할 수 있습니다.

이를 위해 상향선 아이콘으로 표시된 기준 버튼을 클릭하세요. 다음과 같은 섹션이 나타납니다.

각 기준에 대한 설정에는 두 개의 메뉴가 있습니다. 왼쪽 메뉴에서 기준을 최소화할지 최대화할지 선택합니다. 오른쪽 메뉴에서는 미리 정의된 옵션 중에서 최소화 또는 최대화할 기준을 선택합니다. 새로운 기준은 기준 추가을 클릭하여 추가할 수 있습니다.

위의 스크린샷에서 우리는 cTrader가 순이익과 cBot이 수행한 수익 거래의 수를 최대화하도록 하고 싶습니다. 동시에 최대 평가금 낙폭 비율을 최소화하고 싶습니다.

간결함을 위해 이 문서에서는 사용자 정의 최적화 기준과 GetFitness() 메서드를 다루지 않습니다. 이에 대해 더 알아보려면 기술 문서를 참조하세요.

특정 최적화 알고리즘을 선택하려면 기준 버튼 오른쪽에 있는 알고리즘 버튼을 클릭하세요. 다음과 같은 하위 섹션이 열립니다.

완전 탐색 알고리즘은 매우 정확하지만 리소스 집약적입니다. 그리드 옵션을 선택하면 cTrader는 가능한 모든 매개변수 값의 그리드를 생성하고 이를 테스트하는 데 필요한 모든 백테스트를 실행합니다. 이 과정은 철저하지만 시간이 걸릴 수 있습니다.

다행히 cTrader에는 유전 알고리즘 옵션이 포함되어 있습니다. 이 알고리즘은 각 패스를 개체로, cBot 매개변수를 유전자로, 최적화 기준에 대한 적합도를 적응도로 간주하여 자연 선택을 모방합니다. 유전 알고리즘은 특정 매개변수 값의 변경이 cBot 효율성에 대한 수익 체감을 초래한다고 판단되면 중지됩니다.

유전 알고리즘은 완전 탐색보다 리소스 집약도가 낮으면서도 정확한 결과를 생성하므로 이 최적화 방법을 선택하는 것을 권장합니다.

리소스 할당 및 cBot 최적화 수행

cBot 최적화를 수행하려면 cTrader가 백테스트를 실행할 역사적 데이터의 범위를 선택하세요. 이를 위해 최적화 탭 상단의 캘린더 슬라이더 또는 그 왼쪽과 오른쪽에 있는 메뉴를 사용하세요.

최적화는 리소스 집약적인 프로세스로 완료까지 시간이 걸릴 수 있습니다. 우리는 결과를 비교적 빠르게 받기를 원하므로 최적화 기간으로 1년을 선택하겠습니다.

cTrader는 또한 최적화 프로세스에 할당된 CPU 리소스의 정확한 비율을 결정할 수 있도록 합니다. 이 설정을 사용자 정의하려면 가장 왼쪽 달력 메뉴 왼쪽에 있는 리소스 버튼을 클릭하세요.

새로 나타난 섹션에서 슬라이더를 드래그하여 CPU 사용량을 늘리거나 줄이세요.

리소스 할당을 마친 후 최적화를 진행할 준비가 되었습니다. 이를 위해 가장 오른쪽 달력 메뉴 오른쪽에 있는 플레이 버튼을 클릭하세요. cTrader가 역사적 데이터를 로드한 후 실시간으로 중앙 화면에 최적화 패스가 추가되는 것을 볼 수 있습니다.

그리드 상단에는 현재 패스 수, 경과 시간, 남은 최적화 시간도 표시됩니다.

완료된 패스는 녹색 체크 표시로 표시됩니다. cBot이 스톱아웃에 도달한 패스는 대신 회색 체크 표시로 표시됩니다.

참고

최적화 결과를 저장하고 로드할 수 있으며, 이를 통해 다른 기기로 전달할 수 있습니다.

최적화 결과 해석 및 적용

중앙 그리드에서 cTrader는 각 백테스트 패스에 대한 여러 메트릭을 표시합니다. 여기에는 cBot이 수행한 수익 거래 수와 최대 평가금 낙폭 비율이 포함됩니다.

특히 주목할 만한 것은 각 패스에 대한 적합도 점수를 표시하는 피트니스 열입니다. 적합도 점수는 패스가 선택한 최적화 기준을 최대화/최소화한 정도를 평가하는 메트릭으로 생각하세요. 더 높은 적합도 점수는 이러한 기준에 더 높은 적합도를 나타냅니다.

가장 높은 적합도 점수를 가진 패스를 빠르게 선택하려면 중앙 그리드 바로 위에 있는 최상의 패스 자동 선택 플래그를 활성화하세요. 최적화가 진행되는 동안 최상의 패스 자동 선택 플래그를 활성화할 수 있으며, cTrader는 가능한 최고의 매개변수 값을 동적으로 검색합니다.

피트니스 열에서 볼 수 있듯이, 패스 번호 33은 다른 모든 패스에 비해 가장 높은 적합도 점수를 제공했습니다.

우리는 안전하게 패스 33 옆의 적용를 클릭할 수 있으며, 이 패스 동안 사용된 매개변수 값이 즉시 cBot 인스턴스에 적용됩니다.

느린 기간빠른 기간 매개변수의 기본값은 각각 10과 5였습니다.

백테스트와 마찬가지로, 트레이드 워치 디스플레이는 특정 패스 동안 cBot이 수행한 작업을 요약한 평가금 차트와 상세한 거래 통계를 제공합니다. 평가금 차트는 중앙 그리드의 상위 20개 패스에 대해서만 표시됩니다.

꾸준히 증가하는 잔고평가금 선은 패스 33이 cBot이 효과적으로 작동하기 위해 필요한 매개변수 값을 제공했다는 사실을 강화합니다.

요약

간단히 말해, cBot 최적화는 자동화된 트레이딩 어드바이저가 적절하게 구성되도록 하는 강력한 도구입니다. 다양한 기준으로 여러 번의 최적화를 수행하여 개발한 cBot이나 다른 개발자로부터 획득한 cBot에 대해 어떤 매개변수 값이 가장 적합한지 파악하는 것을 적극 권장합니다.