cTrader Algo API 변경 로그
5.6
2025년 11월
새로운 기능
- 새로운
ChartTemplatesAPI를 통해 차트 템플릿을 검색, 생성, 업데이트, 삭제 및 적용할 수 있습니다. - 새로운
Symbol[]매개변수 타입을 통해 여러 심볼을 알고리즘에 전달할 수 있으며, 다중 심볼 선택기 UI로 표시됩니다. - 새로운
Enum[]매개변수 타입을 통해 열거형 타입의 여러 값을 알고리즘에 전달할 수 있으며, 다중 열거형 값 선택기 UI로 표시됩니다. - 새로운
TimeFrame[]매개변수 타입을 통해 여러TimeFrame값을 알고리즘에 전달할 수 있으며, 다중 기간 선택기 UI로 표시됩니다. - 새로운
MultiSelect알고리즘 컨트롤을 통해 알고리즘 사용자가 여러 고유 문자열 값을 선택할 수 있습니다. WebView컨트롤을 위한 새로운OpenDevToolsWindow메서드를 통해 WebView 컨트롤 인스턴스의 개발자 도구를 열 수 있습니다.- 심볼 포인트를 위한 새로운
SwapCalculationType이 추가되었습니다.
개선 사항
TimeFrame매개변수 타입이 플러그인에서 사용자 정의 기간을 지원하도록 업그레이드되었습니다.DateTime매개변수 타입이 알고리즘에 의해 설정되지 않았을 때DateTime.MinValue대신31/10/2025 00:00:00의 새로운 하드 코딩된 기본값을 사용하도록 변경되었습니다.DateOnly매개변수 타입이 알고리즘에 의해 설정되지 않았을 때DateOnly.MinValue대신31/10/2025의 새로운 하드 코딩된 기본값을 사용하도록 변경되었습니다.TimeSpan매개변수 타입이 알고리즘에 의해 설정되지 않았을 때TimeSpan.MinValue대신00:00:00의 새로운 기본값을 사용하도록 변경되었습니다.TimeSpan매개변수 타입이 알고리즘에 의해 설정되지 않았을 때TimeSpan.MinValue와TimeSpan.MaxValue대신00:00:00의 새로운 최소값과23:59:59의 새로운 최대값을 사용하도록 변경되었습니다.- 일부 내장 알고리즘 샘플이 C# 및 Python 알고리즘 템플릿 및 알고리즘 샘플 GitHub 저장소 목록에 추가되었습니다.
- 모든 내장 지표의 소스 코드가 C# 및 Python 알고리즘 샘플 GitHub 저장소에 추가되었습니다.
- 차트 뷰포트 데이터 전송이 eager에서 lazy로 리팩토링되었습니다. 이 변경으로 인해 알고리즘이 차트 뷰포트 API 멤버를 사용하지 않는 경우 불필요한 리소스 사용이 방지됩니다.
버그 수정
- 차트 객체와 함께 사용할 때 문제를 일으키는 좌표를 가진 차트 컨트롤.
- 플러그인에서 거래 계정이 전환될 때 포지션, 예약 주문 등과 같은 계정 관련 데이터가 업데이트되지 않는 문제.
DateTimePicker컨트롤의ValueChanged이벤트가 알고리즘에 의해 값이 설정되었을 때 트리거되지 않는 문제.
5.5
2025년 9월
새로운 기능
- 새로운
Symbol매개변수 타입을 통해 계정 심볼 목록에서 심볼을 선택하고 알고리즘에 전달할 수 있습니다. - 새로운
TimeSpan매개변수 타입을 통해 시간 간격 또는 시간을 알고리즘에 전달할 수 있으며, 시간 선택기 UI로 표시됩니다. - 새로운
DateTime매개변수 타입을 통해 알고리즘의 시간대에서 날짜와 시간을 전달할 수 있으며, 날짜-시간 선택기 UI로 표시됩니다. - 새로운
DateOnly매개변수 타입을 통해 날짜를 알고리즘에 전달할 수 있으며, 날짜 선택기 UI로 표시됩니다. - 새로운
Parameters컬렉션 속성이PluginType에 추가되었습니다(IndicatorType및RobotType과 유사). 이를 통해 코드에서 플러그인 매개변수에 접근할 수 있습니다. - 새로운
DateTimePicker알고리즘 컨트롤을 통해 알고리즘 사용자로부터 날짜와 시간 값을 쉽게 얻을 수 있습니다.
개선 사항
- 알고리즘 시작 시 예금 자산을 찾을 수 없는 오류를 방지하기 위해 계정 예금 자산 로딩이 eager에서 lazy 모드로 변경되었습니다.
버그 수정
- 플러그인에서
LoadMoreHistory를 호출한 후 새로운 로드된 바가 차트에 추가되지 않는 문제. - 플러그인에서 차트 심볼 또는 시간 프레임을 전환한 후 차트 바가 업데이트되지 않는 문제.
- 포지션 열린 이벤트 핸들러 내에서
Positions.Count에 접근할 때 반환된 포지션 수가 잘못된 문제.
5.4
2025년 7월
새로운 기능
- 플러그인 핫키 API: 플러그인을 위한 새로운 API 객체를 통해 전역 핫키를 추가할 수 있습니다. 이 핫키는 내장 cTrader 핫키처럼 작동하며 어디에서나 사용할 수 있습니다.
- 매개변수 및 출력 설명: 매개변수 및 출력 속성의 새로운
Description속성은 사용자가 UI에서 해당 항목 위에 마우스를 올렸을 때 툴팁을 표시합니다. - 차트 바 토글: 차트 표시 설정의 새로운
Bars플래그를 통해 차트 바를 숨길 수 있습니다. 이 플래그는 투명 색상을 사용할 필요를 없애고 바를 그리지 않음으로써 스케일링 문제를 방지합니다. - 활성 프레임 설정:
Frame클래스의 새로운Activate메서드를 통해 플러그인이 활성 차트 또는 프레임을 설정할 수 있습니다. - 바 출력: 지표는 이제 단일 데이터 시리즈 대신 볼륨이 포함된
OHLC바를 출력할 수 있습니다. 이 출력은 패널 또는 메인 차트에 사용자 정의 막대 차트를 표시할 수 있으며 다른 지표에서 재사용할 수 있습니다. - 플러그인을 위한 데이터 시리즈: 새로운
CreateDataSeries메서드를 통해 플러그인이 데이터 시리즈를 생성할 수 있습니다. 생성된 시리즈는 내부 지표에 입력으로 전달될 수 있습니다. - 패널 자식 속성: 새로운
Children,HasChild및ChildrenCount속성을 통해 패널 내용에 접근하고 작업할 수 있습니다. - 그리드 패널 위치 정보: 새로운
GridChildPositionInfo메서드는 그리드에서 자식의 위치를 반환합니다. - 플러그인을 위한 메인 메뉴 API: 새로운 API를 통해 SVG 아이콘이 있는 메뉴 항목을 메인 메뉴에 추가할 수 있습니다. 상단 메뉴 항목은 사용자 지정 컨트롤을 표시할 수 있습니다. 하단 메뉴 항목은 플러그인 핸들러를 트리거할 수 있습니다.
- 플러그인 매개변수: 플러그인은 이제 지표와 cBot과 동일한 방식으로 매개변수를 사용할 수 있습니다. 매개변수는 플러그인 설정에서 보이고 편집할 수 있습니다.
개선 사항
AssetsAPI가 리소스 사용량을 줄이기 위해 리팩토링되었습니다.SleepAPI가 개선되어 시장이 닫혔을 때 cBot과 지표가 멈추는 것을 방지합니다.
버그 수정
- 버전 5.4에서는 API 버그가 발견되거나 수정되지 않았습니다.
5.3
2025년 6월
새로운 기능
- 사용자 지정 시간 프레임 API: 새로운 API를 통해 플러그인이 사용자 지정 시간 프레임을 정의하고 데이터를 제공할 수 있습니다.
- 사용자 지정 심벌 API: 새로운 API를 통해 플러그인이 사용자 지정 심벌을 생성할 수 있습니다. 생성된 심벌은 기존 심벌을 기반으로 하거나 처음부터 정의될 수 있으며 중개인 심벌처럼 동작합니다.
- 사용자 지정 백테스트 데이터 소스: 새로운 API를 통해 플러그인이 백테스트 및 최적화 데이터를 제공할 수 있습니다. 이 API는 외부 틱 데이터와 서드파티 피드를 지원합니다.
- 알림 팝업: 알고리즘이 이제 내장된 cTrader 알림과 유사한 팝업 경고를 표시할 수 있습니다.
- 심벌 감정 데이터 접근: 알고리즘이 이제 심벌에 대한 감정 데이터를 읽을 수 있습니다.
개선 사항
- 크로스 시간 프레임 백테스트: 백테스트 및 최적화에서 호환되지 않는 시간 프레임 사용에 대한 오류 메시지가 개선되었습니다.
- 기본 알고리즘 템플릿에서 도움말 센터 링크가 업데이트되었습니다.
Account.UserId와Account.Nickname이 클라우드 cBot 인스턴스에서 사용 가능하도록 변경되었습니다.- CID 연결 끊김 처리: CID 연결이 끊겼을 때 알고리즘이 계속 실행되며 마지막으로 알려진 계정 데이터를 반환합니다.
- 메시지 타임아웃: 타임아웃 처리를 통해 알고리즘이 cTrader로부터 응답을 기다리는 동안 멈추는 것을 방지합니다.
- 도움말 센터 API 업데이트: 도움말 센터 참조에 보호된 API 메서드가 추가되었습니다.
버그 수정
Account.BrokerName이 콘솔에서 비어 있는 값을 반환했습니다.- 모든 계정 거래를 로드할 때 알고리즘이 멈췄습니다.
- 백테스트에서
RiskReward도구가 라이브 거래를 잘못 배치했습니다. ChartObject.IsLocked속성 문서에 오타가 있었습니다.ComboBox.SelectionChanged가 렌더링 전에 선택된 항목을 설정한 후에 트리거되었습니다.
