Naked 매매 전략 시나리오

Naked 매매 전략 시나리오

담운 0 1,122 2018.09.30 17:23

1) 모든 분석은 실시간 분석을 위해 옵션의 틱 (Tick) 데이터를 이용한다.

2) 틱 데이터로 분석한 볼린저 밴드의 하한선에서 매수하여, 상한선에서 매도한다.

3) 매수 주문은 현재가로 하되, 미체결 상태에서 3호가 차이가 발생하면 주문을 취소한다.

4) 매도 신호가 발생하는 즉시 청산하기 위해 매도 주문은 시장가로 한다.

5) 당일 체결한 주문은 당일 모두 청산한다.

6) 매수 후 일정 수준 이상의 손실이 발생하면 즉시 손절한다.

7) 손절 후에는 일정 시간이 경과한 후에 다시 매매를 시작한다 (안정화 기간 필요).

8) 장시작 직후 10분간, 장마감 직전 10분간은 매매에서 제외한다.

위의 매매 시나리오를 위해 프로그램 화면을 아래와 같이 디자인 하였으며, 조건을 바꿔가면서 시험하기 위해 각 항목은 최대한 변경 가능하도록 하였다.


프로그램 기능 설명

1) 종목명

종목명은 콜-옵션이나 풋-옵션의 종목 코드를 의미한다. 프로그램은 API로부터 입력된 종목의 시세 정보를 실시간으로 전달 받는다.

2) 현재가 : 고수플러스 API로부터 해당 종목의 현재가를 전달 받아 분석한다.

3) 등락 : 해당 종목의 전일 대비 등락폭을 표시한다.

4), 7) 볼린저 인덱스 및 볼린저 상한/하한

볼린저 밴드의 상황을 수치로 표시한 것이다. 현재가가 이동평균선 상에 있을 때를 0 으로 표시하고, 볼린저 밴드의 상한선에 있을 때를 100, 하한선에 있을 때를 -100 으로 표시한다. 만약 이 수치가 -50 이라면 현재가가 이동평균선과 하한선의 중간 지점에 (50% 지점) 위치하고 있다는 의미이고, +80 이라면 이동평균선에서 상한선까지의 80% 지점에 위치하고 있다는 의미이다. 볼린저 인덱스가 -100보다 작으면 매수 신호가 되고, +100 보다 크면 매도 신호가 된다.

볼리저 밴드를 계산하기 위해서는 현재가가 바뀔 때 마다 이동평균 및 표준편차를 구해야하는데, 현재가가 빈번히 바뀌면 계산하는데 시간이 걸려 실시간으로 바뀌는 현재가를 놓칠 가능성이 있으므로, 실시간 이동평균 및 실시간 표준편차를 구하는 방식으로 구현하였다. 실시간 이동평균이란 새로운 현재가가 들어 왔을 때 이동평균 값을 새로 계산하는 것이 아니라, 바로 직전의 이동평균 값을 보정하는 방식으로 계산해 나간다. 실시간 표준편차 계산 방식도 동일하다. 이렇게 하면 100 틱의 표준편차를 구하는 시간이나, 10,000틱의 표준편차를 구하는 시간이 동일하여 프로그램의 Performance가 향상되고, 현재가를 실시간으로 모두 반영할 수 있다.

5) 손절 적용

입력된 손절 라인 (그림에서는 -20%) 이하로 손실이 발생하면, 즉시 청산하고 이동평균 틱수 [(6)번 항목] 만큼 기다렸다가, 다시 매매를 시작한다. 손실이 발생하면 계속 하락 추세에 있을 가능성이 크므로, 패턴이 안정될 때까지 기다렸다가 다시 매매를 재개하기 위함이다.

6) 이동평균 틱수

볼린저 밴드를 계산할 이동평균의 틱수 이다. 이 값이 500 이라면 500 개 틱에 대한 이동평균과 표준편차를 계산하여 볼린저 인덱스를 계산한다. 이 값이 짧으면 단기 패턴으로 매매 신호를 계산하므로, 매매가 빈번히 발생하고, 이 값이 길면 반대의 경우로 매매가 가끔 발생한다. 이 값을 바꾸어 가면서 시험해 본다.

8) 거래수 : 거래 횟수를 표시한다. 매수-매도 거래를 1회로 표시하였다.

9) 손익 : 직전 거래에 대한 손익을 표시한다 (거래 비용 포함).

10) 누적 손익 : 총 거래에 대한 누적 손익을 표시한다 (거래 비용 포함).

11) 롱/숏

매수, 매도를 의미한다. 종목이 콜-옵션이고 “L” 에 체크되어 있으면 볼린저 밴드 하단에서 진입 신호가 발생한다. 즉, 하단에서 해당 콜-옵션을 매수하고, 상단에서 매도한다. “S” 에 체크되어 있으면 상단에서 진입 신호가 발생한다. 즉, 상단에서 해당 콜-옵션을 매도하고, 하단에서 매수 청산한다.

12) 옵션/선물

볼린저 밴드를 계산할 때 옵션의 현재가로 분석할 것인지, 선물의 현재가로 분석할 것인지 선택한다. “O” 에 체크되어 있으면 옵션의 현재가를 분석하고, “F” 에 체크되어 있으면 선물의 현재가를 분석한다.

13) 틱 수

분석할 틱의 개수이다. 1 이면 매 틱마다 볼린저 밴드를 새로 계산하고, 10 이면 10 틱의 평균값을 1 틱으로 하여 볼린저 밴드를 계산한다.

14) 총 틱수 : API로부터 전달 받은 현재가의 총 수이다.

위와 같은 매매 시나리오로 제작된 프로그램 로봇 6 대를 동시에 돌려 보기로 한다. 3 대는 콜-옵션을 매매하고, 3 대는 풋-옵션을 매매한다. 콜과 풋을 섞어서 돌리는 이유는 당일의 주가가 상승할 수도 있고, 하락할 수도 있기 때문에 시험의 정확도를 높이기 위해 양 방향 매매로 하였다. 아래 그림은 6대의 로봇이 돌아가고 있는 모습이다. 볼린저 틱수는 각각 다르게 설정하였다.

 


 

가상 계좌를 이용하여, 이 전략으로 2~3 일간 실험해 보고 그 결과는 이후 포스트에서 설명해 보기로 한다.

주-1) 기술적 분석을 통한 자동 매매로는 수익을 내기 어렵다는 것에 대해 많은 이견이 있을 수 있습니다. 단지 필자의 주관적 생각임을 밝힙니다.

 


Comments

Total 38 Posts, Now 1 Page