통화 변환기
알고리즘 트레이딩에서 cBot과 지표가 현재 시장 환율을 사용하여 자율적으로 통화를 변환할 수 있는 기능은 필수적입니다. 이 API 가이드에서는 이 기능이 cTrader에서 어떻게 구현되는지 설명합니다.
1분 만에 통화 변환!
Convert (double value, Asset from, Asset to및Convert(double value, string from, string to))메서드는 지정된 자산 또는 지정된 이름의 자산 간의 정확한 변환율을 반환합니다. 이들은Algo클래스의 새로운AssetConverter속성을 통해 접근할 수 있습니다.Asset클래스에는 자체Convert(Asset to, double value)및Convert(string to, double value)메서드가 포함되어 있으며, 이는 모든Asset객체에서 쉽게 호출할 수 있습니다.- 백테스트 시, cTrader는 자동으로 과거 환율을 사용합니다. 이는 항상 과거 정확한 결과를 기대할 수 있으며 cBot의 성능을 완전히 평가할 수 있음을 의미합니다.
통화 변환 작동 방식
cAlgo.API.Internals 네임스페이스의 IAssetConverter 인터페이스에는 다음과 같은 오버로드를 가진 Convert() 메서드가 포함되어 있습니다:
double Convert(double value, Asset from, Asset to)- 지정된 값을from자산에서to자산으로 변환합니다.double Convert(double value, string from, string to)- 지정된 값을from문자열과 일치하는 이름의 자산에서to문자열과 일치하는 이름의 자산으로 변환합니다.
Algo 클래스에는 이제 IAssetConverter 타입의 AssetConverter 속성이 포함되어 있습니다. 위의 두 메서드는 다음과 같이 입력하여 접근할 수 있습니다.
1 | |
Asset 클래스에는 또한 다음과 같은 오버로드를 가진 자체 Convert() 메서드가 있습니다:
double Convert(Asset to, double value)- 지정된 값을 이 메서드가 호출된 자산에서to자산으로 변환합니다.double Convert(string to, double value)- 지정된 값을 이 메서드가 호출된 자산에서to문자열과 일치하는 이름의 자산으로 변환합니다.
아래 예제에서는 우리의 cBot이 GBP를 JPY로 변환한 다음 계산된 값을 주문 볼륨으로 사용하여 새로운 시장 주문을 실행합니다.
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 | |
로그를 살펴보면, 우리의 cBot이 예상대로 작동하는 것을 확인할 수 있습니다. 인스턴스가 시작된 시점에 GBPJPY의 매도 가격은 159.619였습니다.

백테스트에서의 통화 변환
cTrader는 백테스트에서 과거 환율을 완전히 지원합니다.
이는 위에서 설명한 메서드를 사용하는 cBot을 백테스트할 때, 지정된 자산 간의 현재 환율이 아닌 과거 정확한 데이터를 사용하여 변환 계산이 수행됨을 의미합니다. 이 기능은 과거 시장 조건을 고려할 때 백테스트 및 최적화 결과가 가능한 한 정확하도록 보장합니다.
cTrader는 잠재적으로 무제한의 거래 도구를 사용하여 정확한 변환 체인을 구축할 수 있습니다. 결과적으로, 백테스트를 수행하려는 심벌의 기본 또는 견적 자산과 계정 예치 통화가 다르더라도, cTrader는 정확한 백테스트 결과를 제공하기 위해 필요한 모든 계산을 처리합니다.
요약하자면, 환율은 cBot과 지표가 정확히 예상대로 작동하는지 확인하는 또 다른 유용한 도구입니다. cTrader가 백테스트에서 자산 변환 시 과거 데이터 사용을 지원하므로, 모든 백테스트 및 최적화 결과가 과거 정확하다는 것을 확신할 수 있습니다.