본문 바로가기

전체 글224

변화하는 시장 내 포트들은 전부 10분으로 설정해둔 Timeframe에서 움직인다. 10분마다 새롭게 전략위치를 계산하고 주문가격대를 결정한다. 왜 10분을 택하게 되었을까 너무 느리지도 빠르지도 않은 백테스트 속도와 슬리피지와 거래비용을 추가하면 할수록 망가지지 않는 적당한 거래회수, 보여주는 시간대에 이 정도인 것 같다고 생각했다. 지난 주 내내 데이터베이스를 새롭게 구축했고 좀 더 높은 정밀도와 오랜 기간의 데이터를 토대로 백테스트가 가능해졌다. 그래서 현재의 Timeframe보다 2배으로 정밀한(?) 5분봉을 가지고 새로운 코스피200 선물 Break-Out전략을 만들어봤다. 1. 전기간 최적화 (2011.06.17 ~ 2021.08.13) 대충 찍어낸 것치고는 괜찮은 흐름으로 보인다. 그런데 매수 및 매도 포.. 2021. 8. 16.
시장에서의 소음과 생각의 근원 아침에 일어나면 습관적으로 핸드폰을 열어 간밤의 환율과 해외증시 그리고 포털사이트에서 상위에 노출된 주식 관련 기사들을 확인한다. 그러나 나는 정말 궁금한 일부 기사를 제외하고는 절대 본문을 읽어보지 않는다. 그렇게 오늘은 어떤 기사들이 올라왔는지 확인하고 출근하면 거의 예외없이 그날 그 어떤 누군가는 그 기사 내용을 이야기하고, 단체 카톡방에는 그 기사의 링크가 올라온다. 심한 경우에는 만 하루도 되지 않는 시간 동안에 어떤 사람들은 기사의 내용을 그대로 온전히 본인의 사고로 받아들여서 마치 본인의 생각인 것처럼 주변에 이야기하고 그 이야기는 다시 주변 사람들에 의해서 확산된다. 이런 상황을 심심찮게 많이 보아왔다. 작년엔 대주주 양도소득세때문에 3/4분기부터 연말까지 주식이 폭락할 것이라는 괴담을 대.. 2021. 8. 6.
코스닥ETF전략 백테스트 및 7월 성과 7월 중순부터 계좌를 나누어서 테스트해봤는데 백테스트 시 매도 및 매수 시 5원씩 슬리피지가 생긴다고 가정한 것보다 양호하게 나오는 것 같다. 다섯 번째 전략은 최근 성과가 꺼림칙해서 보류 중이었는데 7월 성과 또한 가장 최악이었다. 구분 최종자본 MDD 승률 거래회수 최대수익 최대손실 7월성과 K1 1023% 6.57% 47.27% 1064 8.46% -1.86% -1.16% K2 1142% 7.16% 45.56% 799 9.27% -1.82% 1.32% K3 390% 6.61% 52.11% 568 6.11% -1.86% -1.12% K4 517% 6.26% 55.39% 399 8.44% -2.41% -0.54% K5 521% 6.64% 58.29% 410 13.02% -2.89% -1.80% 복리투자.. 2021. 8. 1.
7월 끝 2021년 7월... 가장 많은 비중을 차지하고 있는 국내선물전략들은 중반까지 순조로운 흐름이었으나 후반부에 무너져서 아쉽게도 수익금을 그대로 다 내주게 되어 결국 약간의 손실로 7월을 마감하게 될 것 같다. 제일 큰 문제는 코스피 선물 전략들이다. 작년 3/4분기부터 올해초까지 큰 수익을 안겨준 전략들의 수익곡선이 3월부터는 고점을 찍고 서서히 하락하는 패턴들을 보이고 있었다. MDD와 손실을 줄이기 위해 거래시간, 필터, 변수 최적화 등등 다 조절해봤지만 그럴 때마다 전략들이 번호표를 뽑고 기다렸다는 듯이 돌아가며 순차적으로 망가지고 있었다. 오늘도 가장 오래된 두 개의 전략은 사이좋게 MDD를 갱신했다. 고민을 하다가 미니 코스피로 상품을 변경하고 몇개 포트의 비중을 감소시켰는데, 최적화를 다시 해.. 2021. 7. 29.
TA-Lib을 이용한 캔들스틱의 패턴인식 매번 이리저리 변수들을 바꿔서 백테스트를 하다 대충 우상향 하는 곡선을 뽑아내고 나온 결과물들을 곰곰히 살펴보면 결국엔 기존 전략들과 별반 차이가 없는 구조를 발견하게 되는 일이 많았다. 결국 어떤 스토리, 철학을 가지고 진입을 하느냐가 중요한 것 같은데 그런 측면에서 그동안 미루어왔던 캔들 유형에 따른 투자방법을 한번 생각해보기로 했다. 캔들 유형이 매우 다양해서 그 유형들의 특성들을 다 공부하고 이를 수식화하는 것은 단기간에 어려울 것같고 그냥 데이터베이스에 담긴 OHLC 자료를 TA-Lib을 이용해서 어떤 캔들 유형인지 판단, 해당 유형의 캔들이 출현하였을 때 단기적으로 투자한다고 가정할 경우 유형별 수익성, 복리투자를 가정한 자본, MDD 등을 산출해볼 것이다. 그런데 생각할수록 '패턴인식'이라니.. 2021. 7. 17.
주문사고 어제 오후 9시 반 그 시간대에 CPI지표가 발표가 있어 시장이 순간적으로 급락 중이었다. 곧 MNQU21 매수 4계약의 청산신호가 떠서 확인했더니 주문이 거부되었다는 SMS가 도착해있었고 프로그램은 종료상태...... 고객센터에 문의해서 상황을 파악해보니 시장가 주문이라 하더라도 주문접수시점과 실제 체결시점 간의 가격이 24틱 (MNQ의 경우) 이 넘게 차이날 경우 주문접수가 취소된다고 한다. 전혀 예상하지 못하던 상황이었다. 실시간으로 보유포트들의 손익을 계산하는 함수가 ZeroDivisionError를 뱉어내고 프로그램이 종료되어 버렸고 덕분에 코드를 일일이 다 찾아서 전부다 ZeroDivisionError 예외처리를 해주었다. 조금 이해가 안되는 점은 시스템 상의 손절가격은 14894이었고 로그에.. 2021. 7. 15.
QEventloop QEventloop에 대한 이해가 부족해서 간단한 예시를 만들어 보았다. timer0, timer1, timer2를 순차적으로 등록 실행하고 1초마다 실행한다. timer0은 check변수를 1씩 더하고 10이 되면 QEventloop를 종료시킨다. timer1은 무조건 실행 timer2는 eventloop가 실행되고 있지 않을때만 print create_event_loop함수를 통해 QEventloop를 실행하고 이 이벤트루프가 timer0에 의해 종료되는 시점까지 create_event_loop함수는 대기하고 있다가 '이벤트루프종료'라는 메세지를 출력한다. run_other함수는 create_event_loop함수 내에서 이벤트루프가 종료되기 전에 실행되지 않는다. 1 2 3 4 5 6 7 8 9 1.. 2021. 7. 14.
코스닥150ETF 전략재개 한동안 새롭게 추가할 전략을 고민하다 코스닥150ETF을 이용하는 단기트레이딩 전략을 다시 포트폴리오에 추가하기로 했다. 코스닥150ETF 전략은 시스템트레이딩을 처음 접하던 이래로 가장 많은 시간을 투입하고 방대한 삽질을 경험한 애증의 전략이었다. 지금도 233740, 251340은 122630, 252670과 함께 내가 외우고 있는 유일한 종목코드들이다. 그러나 점차 선물의 투자비중이 증가했고 MDD가 커져가던 상황에서 방치해오다 몇달 전 모든 ETF전략들을 시스템에서 제외해버렸다. 그 당시는 다른 전략들의 구상과 운영에 집중하고 있어서 사실 깊게 생각해보지 않았는데 지금에서야 뒤늦게 생각해보면 ETF 전략 운영의 실패는 아래와 같은 이유였다. ETF호가 단위와 슬리피지 ETF의 호가는 단위당 5원으.. 2021. 7. 12.