데이트레이딩을 하면 매일 주식을 사고팔기 때문에, 자연스레 어떻게 해야 제일 유리한 가격에 매매할 수 있을까 고민하게 된다. 주문방식의 개선으로 슬리피지를 아주 조금 낮춰서, 아주 조금 유리한 가격에 매매할 수 있다면, 이 효과가 매일 누적되기 때문에 큰 수익의 차이로 발생할 수 있으리라 하는 기대 때문이다.
하지만, 이제까지 계속, 아직, 주문집행보다는 전략을 만드는 것이 더 중요하고 우선 시 해야 하는 일이라고 생각했기 때문에, 최적주문집행 알고리즘을 개발하는 일은 늘 '언젠가는 해야 하는 일' 같은 골치 아픈 숙제로 여겨왔다. 그러면서 늘 주먹구구로 대충 이 정도로 사고팔면 되겠지, 하는 수준으로 매매를 해 왔다.
전략이 쌓이고 매일 매매되는 종목과 수량이 늘어나면서, 이제 숙제를 할 때가 됐음을 느꼈다. 더 이상 미룰 수는 없다. 그래서 며칠을 고민한 끝에 어설프지만 최적주문집행 알고리즘을 만들었다.
우선 내 전략들은 일정 타임 동안 분할로 매매하는 타임컷 매수매도가 많았다. 이 주문들을 개선시켜 본다.
시간과 종목들은 정해져 있으므로, 해당 종목들을 해당 시간 내에 가장 유리하게 사거나 팔면 된다. 그리고 해당 시간이 종료될 때 매매가 완료되어야 하므로, 마지막 매매는 시장가로 털어야 한다. 그런데, 기본적으로 시장가는 1호가 손해 보고 매매하기 때문에, 가능하면 지정가 매매, 그것도 1호가 유리하게 거래하는 최우선지정가 매매를 하는 것이 유리할 것이다.
결과적으로 지정가 매매로 최대한 매매를 하되, 일정 물량은 마지막에 시장가 매매로 털어낸다. 다만, 시장가 매매 물량이 너무 커서 두 호가 이상 잡아먹는 매매가 되면 슬리피지가 크게 발생할 것이므로, 시장가 매매 수량과 빈도도 적당히 조절해야 한다. 그리고 매매 횟수는 복잡하게 생각지 말고, 분당 1회, 랜덤 초 거래를 사용했다. 매매 횟수까지 손을 대면 분석량이 너무 많아질 뿐 아니라, 과최적화가 우려되기도 했다.
이런 가정 하에 지정가 매매와 시장가 매매 비율, 지정가 매매 시 태울 물량을 변수로 최적화 분석을 했다. 그런데 결과는 뜻 밖에도, 내가 현재 하고 있는 매매보다 더 심플한 방법으로 매매를 하라는 것이었다. 과연 이렇게 하는 것이 더 좋은 결과를 줄지 의심이 될 정도였다. 그럼에도 데이터가 알려주는 곳에 늘 답이 있더라. 그래서 일단 실행해 본다. 두 가지 방법으로 실행해 보면서 평균매매가격을 비교해 봐야겠다.
시스템 트레이딩은 하면 할수록 어렵고 오묘하다.
'System trading' 카테고리의 다른 글
시스템 트레이딩 2023년 결산 (1) | 2023.12.28 |
---|---|
수정주가 이슈 (0) | 2023.12.12 |
시스템 트레이딩 작업 비중 (0) | 2023.08.26 |
남의 정보로 투자하기 (2) | 2023.07.12 |
영화 헝거(Hunger)를 보고 - 성공의 욕망 (1) | 2023.06.17 |