슬립 기능
특정 시간까지 대기할 수 있는 기능은 cBot, 특히 일정에 따라 예약되거나 특정 이벤트 발생 시 활성화되어야 하는 cBot에 필수적입니다. cTrader의 Sleep() 메서드는 지정된 시간이 경과하거나 접근할 때까지 알고리즘을 일시 중단할 수 있게 합니다.
참고
슬립 기능은 cBot 및 지표에서만 사용 가능합니다.
이 API 가이드는 Sleep() 메서드와 이를 올바르게 사용하는 방법을 소개합니다.
1분 후 Sleep() 메서드 실행!
Sleep()메서드는 개발자가 유연한 시간 매개변수를 설정하여 알고리즘 실행을 일시 중단할 수 있게 합니다.- 특정 이벤트의 날짜와 시간을 알고 있고, 해당 이벤트에 맞춰 전략을 실행할 cBot이 있다면 슬립 기능을 사용하여 뉴스 거래 및 예정된 이벤트에 대응할 수 있습니다.
- 슬립 기능을 위해 경과할 기간을 밀리초부터 임의의 시간 범위까지 설정할 수 있습니다.
Sleep()메서드는 .NET 6 알고리즘에서만 사용 가능하며 백테스팅에서도 의도한 대로 작동합니다.
슬립 메서드 작동 방식
슬립 기능은 .NET 6 알고리즘에서만 사용 가능합니다. cBot이 슬립 모드에 있는 동안 코드의 다른 모든 이벤트는 무시됩니다.
예시
슬립 모드 중에 BarOpened 이벤트가 다섯 번 발생하더라도 cBot이 깨어난 후 누락된 OnBar() 핸들러는 호출되지 않습니다. 이 경우 새로운 이벤트만 발생합니다.
그러나 cBot은 슬립 모드 중에도 모든 데이터 메시지를 처리합니다(예: RefreshData()가 호출된 경우).
참고
슬립 시간을 지정하면 알고리즘 일시 중단의 최소 간격을 설정합니다. 실제 슬립 시간은 항상 요청된 일시 중단 시간보다 크거나 같습니다.
Sleep() 메서드를 적용하려면 알고리즘 개발자는 목적에 따라 다음 서명 중 하나를 사용해야 합니다.
알고리즘을 지정된 시간 범위가 경과할 때까지 일시 중단하려면:
void Sleep(Timespan timespan)
알고리즘을 지정된 밀리초 수가 경과할 때까지 일시 중단하려면:
void Sleep(int milliseconds)
알고리즘을 지정된 날짜와 시간이 접근할 때까지 일시 중단하려면:
void Sleep(DateTime dateTime)
예시
현재 연방준비제도 의장 제롬 파월의 다음 연설이 2023년 12월 11일 11:00에 예정되어 있다고 가정합니다. EURUSD 추세에 영향을 미칠 몇 가지 발표가 있을 것으로 예상하고, 연설 시작과 동시에 관련 전략을 실행할 cBot을 개발했습니다. 이 경우 다음과 같이 Sleep() 메서드를 적용할 수 있습니다.
DateTime doomsday = new DateTime(2023, 12, 11, 11, 0, 0);
Sleep(doomsday)
경고
DateTime 매개변수가 알고리즘 시간대가 아닌 경우 ArgumentException이 발생합니다.
Sleep() 메서드는 백테스팅에서도 의도한 대로 작동합니다. UI에서 슬립 중인 cBot을 중지하려면 깨어날 때까지 기다릴 필요가 없습니다. 중지 버튼을 클릭하면 시간 초과 없이 작동이 중지됩니다.
예제 cBot 생성
다음 예시 cBot은 시작 후 30초 동안 슬립하며, 해당 메시지가 로그에 출력됩니다. 이후 USDJPY에 대한 매수 시장가 주문을 실행합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |

요약
슬립 기능은 알고리즘 개발자가 cBot이 시작된 후에도 다른 메서드의 실행을 일시 중단할 수 있게 합니다. 유연한 시간 매개변수와 함께 Sleep() 메서드를 적용하면 예정된 이벤트에 맞춰 맞춤 전략을 적시에 실행할 수 있습니다.