트레이드 전략 - 위꼬리가 긴 하루 #2
지난 글에 이어서 '위꼬리가 긴 하루'를 계속해서 분석해보겠습니다.
https://sweetquant.tistory.com/374
트레이드 전략 - 위꼬리가 긴 하루 #1
트레이드 전략 - 위꼬리가 긴 하루 #1 최근 매매에 들어간 종목 세 개 정도가 계속해서 위꼬리가 나오네요. 결과적으로는 매우 않좋게 마무리가 되었습니다. ㅠㅠ. 세 종목이 다.!!!! 그래서, '위꼬
sweetquant.tistory.com
지난 글에서는 2020년 10월 중에 위꼬리가 긴 데이터를 검색했습니다. 이번에는 위꼬리가 긴 종목을 매도했을 때에 수익률이 어떤지까지 연결해보려고 합니다.
매매를 하기 위해서는 매수(Buy) 시점, 매도(Sell) 시점을 정해야 합니다. 매수 시점은 앞에 글에서 구한 위꼬리가 나온 날의 종가입니다. 매도 시점은 간단하게 3일 후 종가로 하도록 하겠습니다.
지난 글의 SQL에 아래와 같이 3일 후 종가를 가져오도록 처리하면 됩니다. SQL이 좀 길어졌지만 겁먹지 말고 천천히 따라서 입력해보시기 바랍니다.
SELECT T2.STK_CD ,T2.DT BUY_DT ,T2.C_PRC BUY_PRC ,T2.H_L ,T2.UP_TAIL ,T2.H_L_CHG ,T2.UP_TAIL_RT
,T3.DT SELL_DT ,T3.C_PRC SELL_PRC
,ROUND((T3.C_PRC - T2.C_PRC) / T2.C_PRC * 100,2) PROF_RT # 3일후 매도시 수익률
FROM (
SELECT T1.STK_CD
,T1.DT
,T1.C_PRC
,T1.H_PRC - T1.L_PRC H_L # 고가-저가 길이
,T1.H_PRC - GREATEST(T1.C_PRC,T1.O_PRC) UP_TAIL # 위꼬리 길이
,ROUND((T1.H_PRC - T1.L_PRC) / T1.L_PRC * 100,2) H_L_CHG # 위꼬리 등락률
,ROUND((T1.H_PRC - GREATEST(T1.C_PRC,T1.O_PRC))
/ (T1.H_PRC - T1.L_PRC) * 100,2) UP_TAIL_RT # 위꼬리 비율
,T1.STK_DT_NO # --> 종목별일자 순번
FROM MYSTKDB.HISTORY_DT T1
WHERE 1=1
AND T1.DT >= STR_TO_DATE('20201001','%Y%m%d')
AND T1.DT < STR_TO_DATE('20201101','%Y%m%d')
) T2 INNER JOIN MYSTKDB.HISTORY_DT T3 # 위꼬리 발생 3일 후 주가 데이터를 조인
ON (T3.STK_CD = T2.STK_CD AND T3.STK_DT_NO = T2.STK_DT_NO + 3)
WHERE T2.H_L_CHG >= 10 # 고가-저가 등락률이 10% 이상
AND T2.UP_TAIL_RT >= 90 # 위꼬리 비율이 90% 이상
ORDER BY PROF_RT DESC
;
여기서 포인트는 바로 STK_DT_NO입니다. 해당 컬럼은 종목별 일자별 순번이 저장된 컬럼입니다. 해당 컬럼을 이용하면 해당 종목의 3일후 데이터를 가져올 수 있습니다. 날짜 계산을 통해서도 처리할 수 있겠지만 휴일 처리가 매우 복잡해집니다. 그러므로 이와 같은 종목별 순번을 사용하면 손쉽게 몇일 후, 몇일 전 데이터를 조인으로 처리할 수 있습니다(이와 같은 방법을 이미 아시는 분들도 있겠지만, 솔직히 소문내지 않고 저만 알고 싶은 방법입니다.)
위 SQL의 결과를 살펴보면 아래와 같습니다.
STK_CD BUY_DT BUY_PRC H_L UP_TAIL H_L_CHG UP_TAIL_RT SELL_DT SELL_PRC PROF_RT
-------- ------------ ----------- ----------- ----------- --------- ------------ ------------ ----------- ---------
013700 2020-10-27 1910.000 275.000 255.000 14.55 92.73 2020-10-30 2415.000 26.44
052900 2020-10-20 1850.000 410.000 380.000 22.53 92.68 2020-10-23 2015.000 8.92
025880 2020-10-30 2095.000 255.000 245.000 12.23 96.08 2020-11-04 2230.000 6.44
... 생략 ...
033660 2020-10-23 13450.000 1350.000 1250.000 10.07 92.59 2020-10-28 12200.000 -9.29
090710 2020-10-30 1430.000 240.000 230.000 16.90 95.83 2020-11-04 1285.000 -10.14
289080 2020-10-14 7120.000 710.000 660.000 10.04 92.96 2020-10-19 6040.000 -15.17
가장 위에 있는 '013700' 종목은 3일 후 수익률이 무려 26.44 %입니다. 행복한 결말이죠. 하지마 가장 아래에 있는 '289080'은 3일 후에 무려 15.17%를 손해봅니다. 불행한 결말이죠. 이처럼 주식 트레이딩에는 행복과 불행이 항상 공존합니다. 행복만 바라보고 트레이드를 한다면 불행의 쓰디쓴 맛을 보게 됩니다.
실제로도 그런지 차트를 통해 확인해보도록 하겠습니다. 이처럼 데이터 분석과 전략 생성을 위해서는 중간 중간 데이터 확인을 해야 합니다.
먼저 013700의 차트를 살펴보면 아래와 같습니다. 3일후 주가가 오른 것을 알 수 있습니다.
![](https://blog.kakaocdn.net/dn/bLWgGe/btrSGVFfr6C/U8wOjRfAY8JHL0MbARrC20/img.png)
이번에는 289080의 차트를 살펴봅니다. 3일후 주가가 떨어진것을 알 수 있습니다.
![](https://blog.kakaocdn.net/dn/kZYiD/btrSHkEO0dU/ic9sBKVz1mEFSXRYGaIWrK/img.png)
오늘은 위꼬리가 발생한 종목의 3일후 주가를 연결하고 수익률까지 구해봤습니다. 다음 글에서는 데이터 집계를 통해 트레이딩 엣지(Trading Edge, TE)를 구해보도록 하겠습니다.
다시 한 번 말씀드리지만,
소개하는 트레이드 전략은 매우 위험합니다. 주식 차트의 봉 모양을 보고 매매를 한다는 것 자체가 매우 위험한 방법입니다. 절대 주식 투자나 종목 매매를 권장하는 글이 아닙니다. 기술적인 설명을 위한 글이며, 이 글을 참고해 발생한 투자 손실에는 그 누구도 절대 책임지지 않습니다.
감사합니다.
![](https://blog.kakaocdn.net/dn/cuZAEJ/btrSCLc7QcH/3fkqJ60tuDIyFW5JtTg4j1/img.png)
![](https://blog.kakaocdn.net/dn/cSPswM/btrSDcIj0gi/oAbBfkjvWUbo6DXyRfAykK/img.png)
'데이터분석 > TradeOptimizer' 카테고리의 다른 글
볼린저밴드 트레이드-Ver01 전략 (0) | 2023.08.14 |
---|---|
ATR(Average True Range)을 이용한 손절(Stop Loss) 설정 (0) | 2023.08.11 |
트레이드 전략 - 위꼬리가 긴 하루 #4 (1) | 2022.12.02 |
트레이드 전략 - 위꼬리가 긴 하루 #3 (0) | 2022.12.02 |
트레이드 전략 - 위꼬리가 긴 하루 #1 (0) | 2022.12.02 |
PyKRX - 주가 이력 정보 DB화하기 (0) | 2022.11.29 |
PyKRX - 주가 이력 정보 가져오기 (0) | 2022.11.25 |
Python 기초 - 날짜 다루기(문자에서 날짜로, 날짜에서 문자로, 날짜 계산) (0) | 2022.11.24 |