
이 기사에서는 가장 널리 알려지고 인기 있는 거래 진입 설정 중 하나인 오프닝 레인지 돌파(ORB) 전략을 살펴본다. 이 전략은 1990년대 미국 트레이더 토비 크레이블이 소개했으며, 오늘은 유럽의 주요 주가지수 선물인 DAX에 이를 적용해보겠다.
ORB란 정확히 무엇일까? 크레이블의 개념은 거래 초기 단계가 종종 그날의 시장 방향에 대한 가장 중요한 통찰력을 제공한다는 믿음에 근거한다. 특히 첫 한 시간의 고점이나 저점과 같은 주요 가격 수준을 상향 또는 하향 돌파하는 것은 시장 마감 시까지 해당 추세가 지속될 것임을 자주 시사한다.
이 전략을 자세히 살펴보자. 우리의 테스트는 08:00부터 22:00까지(거래소 시간)의 '클래식' DAX 세션에 초점을 맞출 것이다. 최근 몇 년간 시장 세션이 확대되었지만, 이 역사적인 세션은 여전히 가장 정확한 백테스팅 조건을 제공한다. 또한 이는 가장 유동성이 높은 세션으로, ORB와 같이 중요한 가격 수준 돌파를 노리는 전략에 이상적이다. 최적의 진입 수준 정확도를 위해 15분 봉을 사용할 것이다.
첫 1시간의 거래가 오프닝 레인지를 정의한 후, 세션의 고점, 저점 및 진입점은 첫 번째 가능한 봉에서 계산된다. 이 시점을 '체크타임'이라고 하며 09:15로 설정된다(첫 1시간은 09:00에 끝나고, 15분 봉을 사용하므로 다음 봉은 09:15에 타임스탬프가 찍힌다).
진입 수준이 계산되면 시스템은 세션 종료 15분 전(21:45)까지 하루 종일 작동할 수 있다. 우리는 거래를 시작하기 위한 넓은 거래 창구(09:15-21:45)를 설정했으며, 이는 'MyStartTrade'와 'MyEndTrade' 입력을 사용하여 미세 조정된다.
자세한 내용: LONG 진입 수준은 세션 범위(고점 - 저점)를 09:15 봉의 시가에 더하고 처음에 1로 설정된 인자(MyMultL)를 곱하여 계산된다. 따라서 가격이 MYLELevel로 알려진 이 수준을 상향 돌파할 때 포지션이 시작된다:
MYLELevel = 시가 + 범위 * MyMultL
반대로 SHORT 진입 수준은 세션 범위(고점 - 저점)를 시가에서 빼고 역시 처음에 1로 설정된 인자(MYMultS)를 곱하여 결정된다. 가격이 MYSELevel로 알려진 이 수준을 하향 돌파할 때 포지션이 시작된다:
MYSELevel = 시가 - 범위 * MyMultS
MultiCharts PowerLanguage 코드는 다음과 같다:
var: IsStartOfSession(true);
var: MyLELevel(0), MySELevel(0);
Input: checktime(915);
Input: MyStartTrade(0915),MyEndTrade(2145);
Input: MyMultL(1), MyMultS(1);
Input: MyStop(5000);
if IsStartOfSession then begin
MyLELevel=0;
MySELevel=0;
end;
if time=checktime then begin
MyLELevel = open+(highd(0)-lowd(0))*MyMultL;
MySELevel= open-(highd(0)-lowd(0))*MyMultS;
end;
if time>MyStartTrade and time buy next bar at MyLELevel stop; sellshort next bar at MySELevel stop; end; If MyStop > 0 then setstoploss(MyStop); setstopcontract; setexitonclose; 시작된 거래는 손절매가 발동되지 않는 한 당일 종가(22:00)에 종료된다. 그림 1 - MYLELevel 및 MYSELevel 계산 예시 그림 2와 3은 추가 필터를 적용하지 않은 거래 시스템의 결과를 보여주며, 2010년 1월 1일부터 2023년 10월 31일까지의 기간을 다룬다. 그림 2 - DAX에 대한 ORB 거래 시스템의 상세 자본 곡선 그림 3 - DAX에 대한 ORB 거래 시스템의 전략 성과 보고서 현재 적용된 전략이 특히 숏 포지션에서 그다지 효과적이지 않은 반면, 롱 포지션에서는 수익성에 대한 잠재력을 보여주고 있음이 분명하다. 이 설정을 거래 선택을 세분화하기 위한 추가 필터 없이 매우 기본적인 방식으로 적용했음을 기억하자. 연구를 더 진행해보자. 초기에는 거래 시스템이 세션의 대부분을 커버하는 넓은 시간대(09:15-21:45)에 걸쳐 주문을 낼 수 있도록 허용했다. 이제 특정 시간대로 제한하면 수익성이 향상될 수 있는지 살펴보자. 'MyStartTrade'와 'MyEndTrade' 입력을 최적화할 것이다. 그림 4 - MyStartTrade와 MyEndTrade의 최적화 결과는 오전 10시 이후부터 오후 이전에 포지션을 진입하는 것이 주요 지표를 크게 개선한다는 것을 보여준다. 순이익과 평균 거래 결과를 고려할 때, 10:00-16:00 시간대가 최적으로 보이며 더 나은 하락폭 결과를 산출한다. 그림 5와 6은 자본 곡선과 전략 성과 보고서를 보여주며, 218,000유로 이상의 순이익을 나타내지만 두 가지 핵심 영역에서 여전히 개선이 필요하다: 하락폭이 여전히 너무 높고, 평균 거래(66.89유로)가 실시간 거래 비용(슬리피지와 수수료) 때문에 실제 거래에 충분하지 않다. 그림 5 - 시간 창 최적화 후 DAX에 대한 ORB 거래 시스템의 상세 자본 곡선 그림 6 - 시간 창 최적화 후 DAX에 대한 ORB 거래 시스템의 전략 성과 보고서 이 단계에서 어떤 다른 방향을 고려할 수 있을까? 평균 거래를 어떻게 수용 가능한 수준으로 높일 수 있을까? 한 가지 옵션은 처음에 1로 설정된 승수(MyMultL과 MyMultS)를 조정하는 것일 수 있다. 이러한 입력에 대해 0.3에서 2까지 0.1 간격으로 범위를 설정하여 최적화를 실행하고 결과를 분석해보자. 그림 7 - DAX에 대한 ORB 거래 시스템의 MyMultL 최적화 그림 8 - DAX에 대한 ORB 거래 시스템의 MyMultS 최적화 MyMultL(그림 7)의 경우, 0.4 파라미터를 선택한다. 이는 순이익(218,000에서 약 360,000유로로)과 평균 거래(66.89에서 85유로로)를 크게 개선한다. 또한 0.3과 0.5 사이의 값들도 유사한 결과를 보이는 안정적인 범위 내에 있다. MyMultS(그림 8)의 경우, 0.9 파라미터를 선택한다. 이는 순이익을 약간 향상시키며 0.8과 1 사이에서 마찬가지로 안정적이다. 숏 거래의 경우 MyMultS에 대해 MyMultL보다 더 높은 값(0.9 대 0.4)이 필요하다는 점에 주목할 만하다. 이는 그 방향으로 이익을 달성하기 위해 더 공격적인 시장 움직임이 필요함을 시사하며, 주가지수의 일반적인 상승 편향이 롱 포지션을 숏 포지션보다 선호하기 때문일 가능성이 높다. 그림 9 - MyMultL과 MyMultS 최적화 후 DAX에 대한 ORB 거래 시스템의 상세 자본 곡선 그림 10 - MyMultL과 MyMultS 최적화 후 전략 성과 보고서 이 기사를 마무리하며, DAX 선물에 대한 오프닝 레인지 돌파가 오늘날에도 여전히 고려할 만한 유효한 패턴이라고 결론지을 수 있다. 이것이 전략의 최종 버전인가? 절대 아니다. 이 전략은 실제 거래에 사용할 준비가 되려면 추가적인 개발이 필요하다. 언급했듯이, DAX의 경우 수익성을 확보하고 실제 거래 비용을 충당하기 위해 평균 거래가 이상적으로는 최소 170-180유로가 되어야 한다. 또한 최대 손실폭을 더 관리 가능한 수준으로 줄이기 위한 해결책이 필요하다. 필터 추가에서부터 Unger Academy®에서 사용하는 패턴 라이브러리 활용, 더 정교한 리스크 관리에 이르기까지 다양한 도구로 이를 달성할 수 있다. 그럼에도 불구하고, 이는 견고한 출발점이다. 이제 독자 여러분이 이를 발전시켜 나갈 차례다. 다음에 만나요, 행운이 있기를! 안드레아 웅거
DAX에 대한 ORB 거래 시스템의 성과 보고서
DAX에 대한 ORB 거래 시스템 최적화
DAX에 대한 ORB 거래 시스템의 결론