전체 글 39

시스템 트레이딩 개발 기초(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

올웨더 전략 구성시 도움되는 사이트

https://www.portfoliovisualizer.com/​ 올웨더 백테스트 사이트 처음 가입하면 한달가량 베이직플랜을 쓸 수 있다. 자신만의 포트폴리오를 손쉽게 백테스트 할수 있고, 올웨더 말고도 영구포트폴리오 등의 예시도 제공한다. https://etfdb.com/etfdb-categories/​ ​etf 카테고리 사이트. etf를 고를때 이게 어떤 자산을 추종하는지 카테고리화 하여 쉽게 찾을 수 있다. https://finance.yahoo.com/​ etf 세부 정보 및 차트데이터 etf에 대한 차트데이터, 유동성, 수수료 등 자세한 정보를 알 수 있다.

System Trading 2020.03.27

Git Flow 와 CI/CD

kubernetes기반으로 작동하는 모니터링 서비스 개발과 배포를 최대한 자동화 하기 위해서 Git Flow와 CI/CD를 도입해보았다. Git Flow를 이해하기 위해 다음의 아티클을 참고하였다. http://dogfeet.github.io/articles/2011/a-successful-git-branching-model.html https://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html CI/CD인 경우는 circleci 와 helm 을 이용하였다. 대상 git repo에는 소스코드와 helm chart가 모두 있다. 그래서 실제 빌드에서부터 Chart배포까지 모두 한 곳에서 이루어진다. (원래는 분..

Kubernetes 2020.03.19

각종 필터, 스코어 제거

요일별 모멘텀 체크로직을 하나로 통일하고 매우 간단하게 변경. 그래프를 유심히 보니 떨어질때 같이 떨어지든가 덜 떨어지든가 해야하는데 기존 로직으로는 전혀 떨어짐 없이 올라감. mdd도 3.4로 너무 말이 안되는 수치라 폭락날짜를 전부 거른것으로 판단. 이런 오버피팅으로는 의미가 없다고 판단함. 이평선,볼륨 스코어 필터를 전부 빼버림.(무조건 풀매수) 리스크관리를 하려면 넣는게 맞으나 곰곰히 생각해보니 내가 몇억가지고 하지 않는 이상 높은 연수익률이 필요함. 다만 mdd도 큰폭으로 증가하는데, 금액이 적은만큼 멘탈로 극복할 필요가 있음(멘탈관리 경험을 쌓아야함)

System Trading 2020.03.03

Thanos Tips

Thanos 는 Prometheus 사용할 때 HA 와 Long-term storage 를 보완하기 위한 솔루션으로서 기본적인 컨셉과 설명은 조대협님 블로그에 잘 설명되어 있다. https://bcho.tistory.com/1375 Prometheus 를 스케일링 하기 위한 Thanos (타노스) 문제 정의 프로메테우스가 좋은 모니터링 시스템이긴 하지만 두가지 결정적인 문제점을 가지고 있다. 결정적으로 클러스터링 구조를 지원하지 않기 때문에, 확장성과 가용성 문제를 가지고 있다. 확장성 측면에서.. bcho.tistory.com 여기서는 추가적으로 실 운영단계에서 알아둬야할 몇가지 팁을 요약해보고자 한다. - Thanos의 쿼리 속도는 Vanila Prometheus 보다 최소 2~10배 까지 느릴 수 ..

Monitoring 2020.02.11

빈번한 No data alert 벗어나기(in Grafana)

Grafana Alert은 상당히 직관적이고 편리하지만 가끔가다 Metric수집이 안됐을 경우 No Data Alert이 다량 발생할 수 있다. 모니터링에서 이러한 작은 No Data 이슈는 큰 문제가 아니며(수집이 timeout이나 네트웍에 잠깐 문제가 있을수도 있기 때문이다) 곧 정상으로 돌아왔다면 굳이 이러한 패턴에 모두 No Data Alert을 걸어둘 필요는 없다고 본다. Grafana Alert을 셋팅할때 No Data and Error Handling에서 "If no data or all values are null" 항목의 state를 No Data로 해두면 이 경향이 더 심한데, 이유는 No Data로 했을 경우 Pending 상태(For 항목에서 지정한 period)를 무시하고 곧바로 ..

Monitoring 2019.12.12

Shared Informer

사실 Shared Informer에 대한 자료는 구글링을 하면 널리고 널렸다. 다만 필자는 이것을 이해하기전, Shared라는 키워드에 대한 썰을 풀어보고자 한다(필자와 같은 사람이 있을 수도 있겠다는 가정아래) https://medium.com/@muhammet.arslan/write-your-own-kubernetes-controller-with-informers-9920e8ab6f84 Write your own kubernetes controller with informers In applications of robotics and automation, a control loop is a non-terminating loop that regulates the state of the system. I..

Kubernetes 2019.12.11

GPFS Client side monitoring on k8s

GPFS(General Parallel File System)는 IBM에서 개발된 파일시스템으로 1998년에 1.1버전이 최초 출시하면서 계속해서 발전해 온 것으로 알고 있다. https://www.ibm.com/support/knowledgecenter/ko/SSH2TE_1.1.0/com.ibm.7700.r2.common.doc/doc/c00000085.html IBM Knowledge Center Please note that DISQUS operates this forum. When you sign in to comment, IBM will provide your email, first name and last name to DISQUS. That information, along with your..

Monitoring 2019.12.10