News & Events
[알고리즘 트레이딩/전략편] 37. Trailing Stop 스캘핑 전략 시험
- 2019년 1월 11일
- Posted by: 인사이트캠퍼스
- Category: 금융/AI/IT 기사
알고리즘 트레이딩 (Algorithmic Trading) – 전략 (37)
Trailing Stop 스캘핑 전략 시험
이전 시간에 살펴본 Trailing Stop을 청산 전략으로 활용한 스캘핑 전략을 시험해 보았다. 진입 전략은 호가창 및 체결창을 이용한 기술적 분석으로 하였고, 청산 전략은 Trailing Stop으로 하였다.
스캘핑 도구는 이베스트투자증권의 XingAPI로 만든 시스템 트레이딩 툴을 이용하였다. 참고로, 이 툴은 주식/파생 종목의 호가 및 체결 데이터를 실시간으로 받아 분석하면서 자동으로 주문을 전송하는 기능을 가지고 있다. 분석 및 주문은 스크립트 방식을 채택하였다. 스크립트로 자신만의 전략을 짜서 돌리는 구조이다. 스크립트 방식을 채택한 이유는, 수많은 전략을 시험할 때 그때그때 마다 프로그램을 수정하면 (하드 코드 방식) 노력과 비용이 너무 많이 들기 때문이다. 이 플랫폼 위에서는 스크립트의 내용만 변경하면 수많은 전략을 쉽게 시험해 볼 수 있다.
아래 그림은 메인 화면의 모습이다. 4개 종목의 호가/체결 틱을 관리하고, 8개의 전략 스크립트, 체결/미체결 주문관리, 손익/재고 관리 기능으로 구성되어 있다.
1. 스캘핑 시험 대상
– 시험 대상은 삼성전자 주식 선물로 하였다. 주가의 방향에 따라 매수/매도 포지션을 양방향으로 자유롭게 잡기위해 현물이 아닌 선물을 선택하였다. 또한, 스캘핑은 장중에 빈번한 거래가 발생할 수 있으므로 거래비용을 줄이기 위해 선물을 선택하였다. 스캘핑은 장중 주가 변동성이 큰 종목이 유리하겠지만, 여기서는 삼성전자를 선택해 보았다.
– 호가 및 체결 데이터 분석은 삼성전자 현물을 이용하였고, 거래는 삼성전자 선물로 하였다. 현물과 선물 가격의 흐름은 유사하지만, 현물 데이터의 정보량이 훨씬 많기 때문에 현물 데이터를 분석하였다.
– 진입 신호는 삼성전자 현물의 호가/체결 데이터를 이용하여 기술적 분석을 기반으로 하였고, 청산 신호는 Trailing Stop을 적용하였다.
– 주가 상승 신호가 발생하면 매수 진입 후 청산 하였고, 하락 신호가 발생하면 매도 진입 후 청산 하였다.
2. 진입 전략
아래 조건들을 모두 만족하면 매수 진입한다. 매도 진입은 반대임. (단, 아래 조건들은 아무 근거 없이 필자가 임의로 설정한 것들임.)
– 삼성전자 현물의 최근 200틱 (단기) 이동평균 체결 가격이 최근 400틱 (장기) 이동평균 체결 가격 위에 있음 (주가가 상승중임을 의미함).
– 코스피200 지수의 최근 2분간 (단기) 이동평균이 최근 4분간 (장기) 이동평균 위에 있음 (시장이 상승중임을 의미함). 코스피200 지수는 거래소에서 2초마다 보내주는 데이터를 이용하였음. 종목과 시장이 항상 같이 움직이는 것은 아니지만, 일반적으로는 시장과 동기화 되는 성향이 있기 때문에 시장의 방향을 고려하였음.
– 삼성전자 현물의 최근 400 틱의 체결 가격 변동성이 틱 당 1.5 이상임 (볼린저 밴드의 상.하한선에 해당). 주가의 변동성이 어느 정도 커야 스캘핑으로 수익을 기대할 수 있으므로, 변동성이 비교적 높을 때만 진입함.
– 삼성전자 현물의 최근 50 틱의 매수 체결 강도가 70% 이상임 (거래량 100개 중 매수 거래가 70개 이상). 체결 강도는 시시각각 변하는 척도이지만 좀 더 안전한 진입을 위해 고려해 보았음.
– 진입 후 청산이 완료되면, 100 거래량 마다 재 진입 여부를 판단하였음 (100 거래량 마다 루프를 돌림). 거래량으로 판단한 이유는, 거래량이 많을 때는 (변동성이 높을 때) 데이터 분석을 더 빈번히 하기 위함이다 (정보량과 캔들 차트의 종류 참고).
3. 청산 전략
청산 전략은 Trailing Stop을 적용하였다. Stop Loss (L)의 수준은 5틱으로 설정 하였다. 즉 매수 진입 이후 고점에서 5틱 하락하면 청산하는 것으로 하였다. 참고로 L 은 시간에 따라 가변적으로 조절할 수도 있다. 최근 변동성이 높으면 장 초반에는 L을 높게 설정하였다가 장 후반으로 갈수록 점차 낮출 수 있다 (Optimal Stopping Time 전략이 됨).
4. 시험 결과
위의 조건들을 적용해서 매수-청산, 매도-청산을 반복적으로 수행하여 아래와 같은 결과를 얻었다. 1일 총 11회 (왕복으로) 거래하였다. 매수 후 청산이 6번 발생하였고, 매도 후 청산이 5번 발생하였다.
장 초반에는 주가 변동성이 커서 진입-청산이 빈번히 발생하였고, 장 중반에는 변동성이 작아 거래가 빈번하지 않았다. 장중의 주가 변동성은 일반적으로 U 자형을 띠므로 일반적으로 이런 결과가 예상된다. 참고로 양방향 스캘핑은 장 초반과 후반이 유리할 때가 많다. 누적 손익 차트를 보면 장 초반과 후반에는 수익이 발생하였고, 장 중반에는 손실이 빈번하였다 (항상 이런 것은 아닐 것임).
5. 전략 스크립트 (샘플)
아래 그림은 위의 전략으로 자동 진입-청산하는 스크립트의 내용이다. 아래 스크립트는 매수 후 청산 절차이고, 맨 위 메인 화면의 (5) 매수 전략 스크립트 창에서 돌고 있는 내용이다. 매도 후 청산 절차는 아래 스크립트와 반대 방향으로 만들어서 (첨부되지 않았음), 메인 화면의 (6) 매도 전략 스크립트 창에서 돌리면 된다. (5) 매수 스크립트와 (6) 매도 스크립트가 동시에 돌면서 각자의 신호가 발생할 때 서로 경쟁적으로 진입한다. 만약 한 쪽에서 먼저 진입하면 다른 한 쪽에서는 청산이 완료될 때까지 진입하지 않는다.
아래의 스크립트 형식은 필자가 개인적으로 사용하는 것이므로 독자들은 생소하겠지만 주석을 통해 전략의 흐름을 파악할 수 있을 것으로 생각된다. (단, 아래 스크립트는 실제 사용한 것을 이해하기 쉽게 일부 편집한 것임.)
여기까지 Trailing Stop을 이용한 스캘핑 전략을 간단히 소개해 보았다. 이 전략은 오랜 기간, 여러 종목을 대상으로 충분히 시험해 봐야 그 성능을 평가할 수 있을 것이다. 위의 결과는 하루 만의 단편적인 결과이다.
[출처]37. Trailing Stop 스캘핑 전략 시험|작성자아마퀀트