System Trading 14

승률과 수익 관계

지금 내 주식전략의 승률은 백테스트상 65%정도이다. 수익률이나 MDD는 로직을 개선하다보면 조정이 되는데 비해 승률은 잘 안되는 경향이 있다. 내 전략을 반대(조건에 맞으면 매매를 안하고, 안맞았을때 매매를 하는 전략)로 했을때 결과는 어떨까? 하고 해봤는데 신기한 결과가 나왔다. 손익은 -99%로 완전히 망하는 결과가 나왔지만 승률은 40%가 넘었다. 손익률을 보고, 내심 내 전략이 유효한게 아닐까(이걸 논리적으로 얘기할 정도는 아니다. 만약 전략이 유효하지 않고 과최적으로 얻은 거라면 반대로 했을때 완전히 망하는 시나리오는 아니어야 하지 않을까 하는 추측으로 얘기하는 거다) 그런 생각을 하면서도 예상했던 승률보다 훨씬 높게 나와서 놀랐다. 이렇게 생각해보면, 차익거래 같은게 아니고 추종하여 예상하는..

System Trading 2021.01.19

시장가 매수 시 조심해야 할 점

* 크레온 API 기준임 시장가로 풀매수를 할때는 전부 다 사질 못한다. 그 이유는 30% 상한가로 매수가를 계산하기 때문이다. 좀 더 자세히 얘기하면 만약 예수금이 10만원이 있고, 1000원 짜리를 100주 산다고 할때, 시장가로 하면 100개를 다 못산다. 상한가 30%를 고려하여 13만원이 있어야 100주 매수가 가능하다. (호가가 비면 당연히 올려서 사야하기 때문) 그러므로 시장가로 사지말고 가능하면 현재가+알파로 지정가를 두고 사야한다.

System Trading 2021.01.17

Python Script 최대한 빠르게 실행하는 방법

파이썬 스크립트를 실행하고나서 실제 매매까지 어느정도 지연이 발생한다. 파이썬 런타임도 메모리에 올라와야하고, 라이브러리 로드도 해야하기 때문이다. 필자는 기존 매매시에 5초이상 딜레이가 발생했다. 그래서 AWS 인스턴스 스펙을 늘려서 이를 극복하려고 했는데 굳이 그럴필요없이 특정시간에 매매하고 싶으면 그 전에 파이썬 스크립트를 돌리고, sleep을 하면 간단하게 해결 된다. current_time = time.time() time_to_sleep = (60 - (current_time % 60)) time.sleep(time_to_sleep) 만약 내가 10시에 정확히 매수를 하고 싶을 경우, 9시 59분에 스크립트를 실행해서 라이브러리 로딩 및 기타 시간에 관계없는 API 등을 미리 호출하고 바로 위..

System Trading 2021.01.17

증시 휴장일 API

github.com/sharebook-kr/pykrx pip install pykrx from pykrx.website.krx.market import core core.MKD01023().fetch('2021')['calnd_dd'].tolist() 아래와 같은 포맷으로 나온다. ['2021-01-01', '2021-02-11', '2021-02-12', '2021-03-01', '2021-05-05', '2021-05-19', '2021-09-20', '2021-09-21', '2021-09-22', '2021-12-31'] 자주 호출하면 IP 블락을 당할 수 있다고 한다. (이럴때 클라우드가 좋긴하다. 껐다켜면 IP바뀜 ㅋ)

System Trading 2021.01.10

2020 하반기 및 전체 손익 결산

아래 링크는 상반기 손익결산devthomas.tistory.com/37?category=768642 하반기에도 엄청나게 지수가 폭등을 했지만(레버리지 기준 70%이상), 트레이딩은 완전 죽쑨 기간이었다. 실제 하반기 수익률은 2.5%를 기록했다. 상반기와 합쳐서 총 수익률은 20.2%였다.(기준지수는 1월대비 40%상승) 하반기 분석을 해보면, 7월 같은 경우는 전략과는 다르게 마이너스가 났다. 백테스트와 비교해보니 중간에 내가 뭔가 조건식을 바꾼듯하다.(앞으로는 한달마다 확인을 해봐야겠다)8월은 반대로 전략을 조금 일찍바꿔서 손해를 메꿨다. 백테스트상 마이너스인데 +로 마감했다.9월은 백테스트와 실제결과 모두 마이너스였다. 과최적 전략을 사용한게 되려 독이었다.10월에는 원래 전략으로 돌아왔지만 10월..

System Trading 2020.12.31

시스템 트레이딩 윈도우서버 공짜로 운영하기

시스템 트레이딩을 위해서는 윈도우 서버를 이용할수 밖에 없는데(몇년 안에 리눅스 REST API가 지원되면 좋겠다. 공인인증서 안녕~) 집에서 간단하게 미니PC를 이용할수도 있지만, 몇가지 단점이 존재한다. - 불안정한 전원, 네트워크 공급: 이게 말이 되냐라고 생각할 수 있지만, 집에 있는한 누가 멀티탭을 끌수도 있고 네트웍이 안될수 있다. - 노후화: 시간이 지남에 따라 예상치 못하게 뻗을수 있다. - 해킹취약: 계속 켜놓고, IP가 고정되기 때문에(요건 경우에 따라 달라질 수도 있긴하다) 해킹에 취약해질 수 있다. 이에 비해 클라우드로 옮기면 위 단점들을 극복할 수 있다. 클라우드는 기본적으로 SLA(99.xxx %로 가용성을 보장)가 있기 때문에 장애가 거의 없다. IP는 계속 바꿀수 있으므로(껐..

System Trading 2020.12.12

2020년 상반기 손익 결산

올해 상반기는 정말 앞으로 일어나지 않을 만한 이벤트였다. V자 반등이다 U자 반등이다 말이 많았지만 현재로 보기에는 역사대로 V자 반등이었다. 내가 만든 봇은 다행히 폭락장을 피하고 역대급으로 수익을 올렸다. 시스템 트레이딩을 시작하고 1년반동안 번거보다(사실상 0원) 훨씬 많이 벌었다. 아쉬운 부분은 목돈이 필요해서 하필 대박이 나오기전에 많은 돈을 빼놨었다는 점이다. 과최적을 없애고 6월초까지는 괜찮았는데, 그 후로 엄청난 폭락에 걸려들기도 했다. 결국 다시 백테스트를 돌려보고 과거 과최적봇으로 돌아가긴했다. 일단 현실 결과부터 얘기하자면, 16.8% 의 수익을 올렸다. 헌데, 3월에 투자금을 1/10로 줄여놓고 이를 다시 올려놓는데 까지 4월말이라서 실제 백테스트상으로는 수익률이 꽤 된다. 이 점..

System Trading 2020.09.08

시스템 트레이딩 개발 기초(1) - 시작

시스템 트레이딩을 시작한지 2년이 넘었다. 직장 다니면서 점심시간에 밥 안먹고 근처 카페가서 개발하고 테스트하고.. 이걸 2년 넘게 계속할지 그땐 몰랐지만, 사실 난 가치투자(라고 쓰고 갬성투자라 읽는다) 스타일은 아니고 이 시스템 트레이딩이 재미가 있었기에 가능했던거 같다. 시스템 트레이딩 자료를 찾아보면 일단 여러 전략에 대한 설명 등으로 시작하는데, 일단 나는 어떻게 개발을 시작해야 하나 부터 하려고 한다. 전략이야 남이 알려줘도 자신이 확신하지 않으면 의미가 없는거고 일단 개발만 해놓고 나면 전략을 적용하는건 유연하게 할수 있으니까. 다음의 순서로 진행해볼까 한다. 파이썬은 이미 알고 있다고 가정하고, API사용 부터 코딩 팁. 그리고 운영방법 등 증권사 API는 현재 내가 쓰고 있는 대신증권 C..

System Trading 2020.09.08

지정가 분할매수의 슬리피지(매수실패)

현재 지정가로 분할매수하는 로직을 적용중이었는데, 베팅금액이 커지면서 매수를 일부만하는 문제가 자주 발생하기 시작했다. 사실 이론상 예상이 되는 문제긴했는데, 보통 출렁이면서 올라가기때문에 지정가로 해도 결국 나중에는 다 매수가 됐었었다. 헌데 요즘 좀 특이한 점이 매수시점에 갑자기 지정가 이상으로 가파르게 상승해서 안내려오는 경우가 잦았다. 1/4정도만 매수된게 4~5월에만 두번이 발생해서 놓친 수익금액이 원금기준 3%이상이었다. 눈물을 머금고, 해결방법을 모색해봤다. 일단, 슬리피지를 최소화하려고 했던 지정가 가격을 올리기로 했다. 다만 이렇게 되면, 100% 매수가 아니기 때문에 전부 다 매수해도 그만큼의 슬리피지가 발생한다. 기존 지정가 대비 0.15%를 올리기로 했다. 두번째로 분할매수를 짧게 ..

System Trading 2020.06.01

하루 -x% 폭락시 n일 중단 전략

유투브 신사임당에서 조던 김장섭님의 영상을 보던중에 해당 전략의 일부를 봇에도 한번 적용해보면 어떨까 아이디어가 떠올랐다. https://www.youtube.com/watch?v=kFTidIhHLoA 난 레버리지를 사용하기때문에 변동폭이 컸으므로 -6%정도를 기준으로 하루동안 그 정도 빠지면 N일을 쉬고 다시 들어가는걸로 적용해보았다. 몇퍼센트인지, 그리고 며칠을 쉬어야 하는지에 따라서 다소 편차가 존재하긴하지만, 중요한건 대부분의 결과가 기존 로직보다 좋아진다는 것이었다. 연수익률이 개선되고 MDD가 큰폭으로 감소됐다. 다만 전체 일별 데이터를 확인해봤을 때, -6%가 발생한 날짜는 4년동안 단 두번에 불과했고, 이 2일에서 발생후 한동안 연패가 발생했음을 알 수 있었다. 단 2일이라는 것이 과최적이..

System Trading 2020.04.10