이제 슬슬 HTS의 기본적인 사용법에 대해서는 익숙해 지고 계시겠죠? 오늘은 초보자분들께서는 생소하게 느끼실 수도 있는 패턴 검색 기능에 대해 설명해 드리겠습니다.
<이미지 출처 : 123RF>
기술적 분석에서 가장 중요한 가정은 가격의 움직임에는 일정한 패턴이 있고, 그 움직임은 반복된다는 가정입니다. 대부분의 주식 투자가들이 챠트를 보면서, "이 종목 그림 좋다!"라고 애기할 때, 경험적으로 이런 모양의 종목은 상승 가능성이 크다는 경험이 섞여 있습니다.
이중바닥형이니, 눌림목이니, 다케다전법이니 이런 이름들은 그날 형성된 가격을 눈으로 직관할 수 있는 " 캔들"이라는 봉으로 표시를 하고, 과거의 통계적인 분석을 통해서 일정한 모양이 형성된 그림에 각각의 이름을 부여해서, 미래 주가 흐름을 예측하기 위한 노력의 결과물들입니다.
여기서 중요한 점은 일단 "그림"으로 종목을 찾는 게 가장 직관적이고 편하다는 점입니다. 패턴검색을 개발할 때 처음에는 어떻게 개발해야 할지 감이 오지 않았습니다.
......난.....감.....증....폭.......
#8536 패턴매치검색, 어떻게 탄생했는가?
언뜻 생각하기에는 그냥 각 종목의 챠트를 그리고 사용자가 그린 모양하고 비슷한 걸 찾으면 되는거 아닌가....라고 할 수도 있지만, 처리해야 할 복잡한 것들이 많은데요.
첫번째 패턴이라는 게, 같은 종목이라도 30일을 보는 챠트 모양하고, 365일을 표현한 챠트 모양하고 전혀 다른 모양이 나온다는 점과, 일간, 주간, 월간 등 주기에 따라서도 완전히 다른 그림이 나온다는 점 입니다.
두번째는 속도의 문제입니다. ELW 종목을 포함하면 거의 1만종목 정도가 되는데, 검색 결과는 늦어도 2초안에 나와야 한다는 점입니다.(보통 HTS나 WEB등 온라인 서비스에서 고객이 감내하는 마지노 시간은 3초로 한정하고 있습니다.)
<이미지 출처 : 123RF>
그래도 일단 개발을 해보기로 했습니다.
화면은 격자 모양의 도화지에 사용자가 마우스로 그림을 그리면 X, Y축의 좌표 값을 얻을 수 있도록 했습니다. 그리고 위에서 언급했듯이 챠트의 모양을 확정할 수 있는, 챠트조회 기간, 그리고 주기를 입력할수 있도록 했습니다.
개발에서 가장 중요했던 점은 100만원짜리 삼성전자나, 1천원짜리 코스닥 종목이나, 가로/세로 사이즈가 일정한 동일한 캔버스에 표시할 수 있도록 물리적인 좌표값으로 변경하는 일 이었습니다. 쉽게 생각하면 사이보스 챠트에서 종목을 바꿔서 보시면, 챠트가 그려지는 공간은 변경이 없고, 우측에 Y축 값만 해당 종목의 가격대에 맞게 바뀌는 논리하고 같은 내용입니다.
이 부분을 해결하니 개발에 필요한 5부 능선은 넘어섰고, 다음은 사용자가 그린 그림과 서버에서 그린 가상의 캔버스 그림의 유사성을 체크하는 부분이었습니다.
1만 종목에 대해서 빠른 시간에 가상의 챠트를 그리고 비슷한 모양을 비교하기 위해서, 일단 사용한 방법은 네거티브 검색입니다. 네거티브 검색은 전체 대상 종목에서 "아닌" 종목들을 먼저 빠르게 버려서, 대상을 줄여나가는 방법입니다.(뭐 이런 방법이 공식적으로 있는건 아니구 그냥 저희가 만들었습니다.^^)
시작점 위치와 끝 위치만을 먼저 비교합니다. 중간에 챠트가 어떻게 움직이든 일단 시작점하고 끝점이 비슷하지 않으면, 그런 종목은 비슷할 리가 없기 때문입니다. 그리고 나름대로 주가 흐름을 비교할 때(시/고/저/종가 모두 사용) 나름 대로 감점 포인트를 정하고, 100%을 기준으로 50%이하 유사성이 떨어지게 되면, 거기서 계산을 멈추는 방법을 사용했습니다.
결론적으로는 대략 1만종목을 계산하는데 1초~2초 정도로 결과값을 얻을 수 있어서, 이 서비스를 고객분들께 제공할 수 있게 되었습니다. ^^
P.S : 물론 속도를 1초 정도로 유지하기 위해서는 다른 비법이 있지만, 이건 기술적인 부분이라 건너 뛰도록 하겠습니다…(보안유지^^)
#8536 패턴매치 검색을 보시면, 크게 3개의 탭으로 구성되어 있습니다.
1. 패턴매치검색 : 이 부분은 주가 흐름을 기준으로 종목을 찾는 가장 기본적인 기능입니다. 그림의 좌측 격자무늬 영역이 사용자가 마우스로 패턴을 입력하는 부분이고, 오른쪽은 검색된 종목의 실제 챠트 모양입니다.
2. 캔들패턴검색 : 이부분은 대략 3~5봉의 짧은 주기로, 각각의 캔들을 정의할수 있도록 되어져 있고, 사용자가 정의한 캔들의 모양과 캔들 사이의 관계를 기준으로 종목을 찾는 기능입니다.
3. 미래주가 예측 : 이 부분은 여러 종목의 과거 가격 흐름을 조사해서, 가장 유사한 움직임을 보인 종목을 찾고, 그 종목의 다음날 주식 흐름을 차용해서 그림을 이어서 보여주는 기능입니다.
좌측창의 노란색 구간이 찾고자 하는 구간, 오른쪽의 노란색 구간은 전 종목을 대상으로 과거 패턴을 비교해서 검색된 구간입니다. 붉은색 영역이 검색종목의(오른쪽) 주가 부분을 차용해서 그려본 예측치 입니다.
일단 기술적 분석의 첫단계인 패턴검색이 어떻게 만들어졌고, 어떤 기능들을 갖고 있는지 설명해 드렸는데요. 서두에서 언급했듯이 기술적 분석은 과거의 흐름이 미래의 주가에서도 반복된다는 가정에서 출발한 기법입니다. 객관적인 근거들을 많이 반영하고는 있지만, 오류가능성을 완전히 없앤 것은 아니기에, 신중한 확인과 정보 수집이 덧붙여져야 한다는 사실도 잊지 말아주세요^^
그럼 다음 시간에는 종목을 또 다른 입장에서 쉽게 찾아볼 수 있도록 만든, "쉬운종목검색" 은 어떻게 해서 만들어 졌는지 살펴 보도록 하겠습니다.
'대신 필진 칼럼 > 주식/증권/HTS' 카테고리의 다른 글
넥슨, 넓고 넓은 하늘아래 해외주식 3 - 장준필의 글로벌투자 (0) | 2011.12.07 |
---|---|
프라다, 넓고 넓은 하늘아래 해외주식 2 - 장준필의 글로벌투자 (0) | 2011.12.05 |
유니클로, 넓고 넓은 하늘아래 해외주식 1 - 장준필의 글로벌투자 (0) | 2011.11.25 |
환율에 영향을 미치는 요인은? - 장준필의 글로벌투자 (0) | 2011.11.21 |
투자국가별 환율변동의 관계 - 장준필의 글로벌투자 (0) | 2011.11.14 |