Skip to main content

본문내용

종목정보

종목토론카테고리

게시판버튼

게시글 제목

세력주 검색기

작성자 정보

평민

게시글 정보

조회 2,041 2009/12/07 18:19

게시글 내용

이 글은 필자가 월간지 마이크로소프트웨어 2009년 12월호에 투고한 글이다.

아래 내용은 잡지사에 요약된 글을 스크랩으로 옮겨둔 내용이다.

최초 원고는 잡지 판매가 마무리되는 시점에 올릴 예정이다

관련 소스 코드는 월간지 마이크로소프트웨어에서 제공하고 있습니다.

-------------------------------------------------

 

개인 투자자들은 주식투자를 하면서 특이한 착시 현상을 경험하게 된다. 매수하려고 관심을 두고 있으면 갑자기 급등해서 놓쳐버리거나 반대로 급등할 것 같아서 매수하면 곧 바로 급락해서 손실을 경험하면서 누군가가 종목의 시세를 움직이고 있는 것 같은 착각에 빠진다. 그래서 우리가 주식투자에 입문하자마자 가장 많이 듣는 말 중 하나가 바로 ‘세력’이라는 단어다. 주식시장에서 특정 종목의 시세를 주도적으로 변동성을 일으키면서 영향력을 행사하는 개인이나 집단을 ‘세력’이라고 간주하고, 세력들의 개입으로 시세가 움직이는 종목을 ‘세력주’라고 부른다.

 

 

전상훈 yhkonan2@yahoo.co.kr|현재 차세대 지능적인 프로그램을 개발하고 있으며, 주식 투자 프로그래밍 블로그와 카페(http://mini.thinkpool. com/neo2)를 운영하고 있다.


시가총액이 큰 대형주는 자금 규모가 큰 외국인이나 기관들이 시세를 주도하고, 상대적으로 자금 규모가 작은 세력들은 중소형 종목의 시세에 개입한다는 글을 심심치 않게 접할 수 있으며, 시가총액이 매우 작아서 적은 자금으로 시세를 조정하기 쉬운 초소형 종목을 대상으로 커다란 수익을 챙기고 튀어버린 작전주 세력들을 적발했다는 뉴스도 등장한다. 두 번째 연재에서는 단기 투자 관점에서 널리 퍼져있는 다양한 세력주 투자 기법을 살펴보고 대표적인 세력주인 급등주나 테마주의 눌림목을 찾아내는 세력주 검색 프로그램을 소개하겠다.

주식투자기법
주식투자와 관련하여 다양한 투자 기법들이 알려져 있는데 크게 기본적 분석법과 기술적 분석법으로 구분한다. ‘기본적 분석법’은 기업의 내재적인 가치를 투자 기준으로 삼는 데 반하여 ‘기술적 분석법’은 실체가 명확하지 않는 기업 가치보다는 객관적으로 확인 가능한 거래량과 가격 중심으로 투자 방향을 찾는다. 또한 기본적 분석법은 기업 가치를 측정하는 방법에 따라서 수많은 변형 기법들이 등장하였으며 마찬가지로 가격과 거래량에서 출발한 차트 중심의 기술적 분석법도 무수히 많은 변형 보완 기법들이 소개되었다. 한편 기업 가치를 중요시하는 기본적 분석을 기술적 관점에서 적용시키는 통합적인 투자방법론도 있다. 이와 같이 오늘날 주식투자와 관련하여 이루 셀 수 없을 만큼 다양한 투자방법론이 등장하였고 각각의 고유한 장단점이 있으며 시기와 상황에 따라서 유행하는 방법론이 달라지기도 한다.

급등주와 테마주
주식투자는 쌀 때 사서 비쌀 때 매도하여 시세 차익을 얻는 것을 목표로 하기 때문에 이왕이면 상대적으로 더 높은 수익을 올릴 것이냐에 대한 원초적인 고민이 시작되면서부터 급등주와 테마주에 눈을 뜨기 시작한다. ‘급등주’란 주식시장의 평균적인 흐름에서 벗어나 상대적으로 짧은 시간 안에 크게 오르는 종목을 가리키는데 보통은 가격 제한의 상한폭인 상한가 상태로 연속적으로 오르는 경우가 많다. 또한 급등주 중에서 단독으로 상승하지 않고 여러 종목이 집단적으로 급등하는 경우가 있는데 대개는 정치, 경제, 사회적 이슈가 증권시장에 반영되기 때문이다. 이와 같이 정치, 경제, 사회적 이슈가 하나의 테마를 형성해서 집단적으로 상승하는 종목들을 ‘테마주’라고 부른다.

2007년은 정권 교체 시기와 맞물리면서 대통령 선거 테마가 유행했는데 [이화공영]은 1년간 바닥권에서 2500% (25배) 이상 급등했으며 이 테마에 속했던 다른 종목들도 수백 % 이상 급등한 종목들이 많았다. 또한 최근에는 신종플루가 사회적으로 커다란 이슈로 부각되면서 신종플루 테마와 관련하여 [파루]는 단기간에 바닥권에서 500% (5배) 이상 급등했으며 같은 테마에 속했던 여러 신종플루 테마주들이 덩달아 급등했었다.

눌림목 투자 기법

대다수의 급등주와 테마주들이 처음부터 끝까지 무조건 급등하는 것이 아니라 1차로 크게 상승한 뒤에 일시적으로 작게 하락하거나 아니면 횡보하면서 잠깐 쉬었다가 2차로 더 크게 오르는 경향이 있는데 이와 같이 상승하면서 잠시 쉬면서 조정을 보이는 구간을 ‘눌림목’이라고 부른다. 그래서 투자 고수들은 상대적으로 강한 시세를 보이는 종목을 수시로 발굴해 두었다가 잠시 쉬는 눌림목에서 매수하여 단기적으로 고수익을 올렸다는 사례들을 자주 접할 수 있다. 눌림목은 상승하는 힘과 휴식 기간을 기준으로 단기(단타) 관점에서 상한가, 5일 이동평균선, 20일 이동평균선 눌림목으로 분류하고, 중기(추세) 관점에서는 60일 이동평균선과 120일 이동평균선 눌림목이라고 부르기도 한다. 하지만 60일과 120일 이동평균선 구간에서 발생하는 눌림목은 상승과 휴식기간이 너무 길어서 개인 투자자들은 선호하지 않는 구간이다. 따라서 보통 개인 투자자가 좋아하는 세력주 관점에서는 휴식기간이 짧은 단기 눌림목 투자 기법이 인기를 얻고 있다(주식차트에서 일정 구간의 가격의 평균값을 선으로 연결한 것을 가격 이동평균선이라고 부르는 보통 줄여서 이평선이라고 한다).

3~6개월 이상 중기적으로 추세적인 흐름을 중요시하는 기관투자자(중기투자자)와는 다르게 급등주나 테마주를 선호하는 개인 투자자들은 비교적 보유 기간이 짧은 단기매매에 치중하는 경향이 있으며 단기매매는 데이트레이딩(단타)과 스윙투자로 구분하기도 한다. 데이트레이딩은 매수하자마자 곧바로 매도를 결정하는데 매수 당일 매도하거나 아니면 다음날 흐름을 보면서 짧게 보유하는데 반하여 스윙투자자들은 짧게는 며칠에서 길게는 몇 주 정도 보유하는 것으로 구분하기도 한다.

20일선은 세력선이라고 부르는데 하락 중이던 종목이 20일선을 돌파하면서 상승하면 주도 세력의 매수 에너지가 강해진다고 판단해서 매수 비중을 늘리고 반대로 20일선을 이탈하면 주도 세력이 이탈한 것으로 간주하여 단기매매 관점에서는 물량을 축소하는 전략을 사용한다. 만약 강한 흐름을 보였던 세력주가 20일선을 이탈했는데도 계속 보유할 경우에는 단기간에 크게 폭락하는 경우를 종종 볼 수 있다. 한편 크게 상승하던 종목이 5일선을 이탈한 후에 20일선 부근까지 밀릴 경우에는 세력들의 힘이 약하거나 아니면 본격적인 상승 에너지를 모으기 위해서 좀 더 충분한 시간이 필요해서 20일선까지 의도적으로 후퇴했다고 해석하기도 한다. 강한 종목은 5일선을 이탈하지 않고 추세적으로 상승하는 경향이 있어서 5일선을 상승 추세의 생명선이라고 부르는데 일부 강력한 재료를 동반한 종목은 급등주로 발전하기도 한다. 따라서 5일선을 지키면서 급등하는 종목에 대하여 수많은 투자 고수들이 다양한 기법을 소개하였는데 여기서는 대표적으로 유행하는 상한가 눌림목, 강약 눌림목, 5일선 눌림목을 중심으로 살펴볼 것이다.

재료 발표 첫 날만 급등하고 이튿날부터 하락하면서 오르지 않다가 며칠 후부터 갑자기 급등하는 종목들이 있는데 이것은 급등을 불러일으키는 상승 재료가 주식시장에 반영되는 시차가 발생하기 때문이다. 즉 재료 발표 순간에는 일부 투자자만 매수에 가담했기 때문에 다음날부터 오르지 않다가 뒤늦게 재료에 대한 상승 믿음이 광범위하게 확산되면서 뒤늦게 매수에 가담하는 사람들이 증가하면서 급등하는 것이다. 이와 같이 첫날은 강한 흐름을 보였지만 다음날부터 약한 흐름으로 하루나 이틀 쉬었다가 급등하는 종목을 [강약 눌림목]이라고 부른다. 이러한 강약패턴 조정을 보이는 구간이 5일선과 만나기도 하는데 이럴 경우에는 5일선 눌림목과 겹쳐서 2중으로 눌림목을 형성하기도 한다.

한편 일부 강약(5일선) 눌림목 종목은 첫 상승 구간에서 상한가로 출발하였다가 강약(5일선) 눌림목을 형성한 이후에 2차로 급등하는 종목들이 있는데 이렇게 (첫)상한가 이후에 형성된 강약(5일선) 눌림목 종목은 다른 강약(5일선) 눌림목 종목들에 비하여 상대적으로 빠르고 강하게 2차 급등으로 이어지는 경향이 있어서 이와 같이 (첫)상한가 이후에 짧은 눌림목 이후에 급등하는 종목을 [상한가 눌림목]만을 집중적으로 매매하는 투자자도 많다.

어떤 종목은 초기 상승 이후에 5일선 부근에서 며칠 간 조정 흐름을 보이면서 쉬었다가 크게 급등하는 [5일선 눌림목]을 형성하기도 한다. 5일선 눌림목 종목은 초강력 급등주인 상한가 눌림목이나 강약패턴보다는 상승 재료가 시장에 반영되는 힘이 상대적으로 약하지만 길게 반영될 때 자주 볼 수 있다. 또한 경우에 따라서는 동일한 재료가 주기적으로 반복되는 경우에도 5일선 눌림목이 나타나기도 하는데 이럴 경우에는 20일선 눌림목과 동시에 겹치기도 한다.

개인 투자자들이 선호하는 여러 종류의 단기 세력형 눌림목을 살펴보았는데 요즘 인터넷에서는 세력주 전문가라는 이름으로 비싼 회비를 받으면서 개인 투자자들한테 세력주를 추천하고 있다. 그런데 세력주 전문가들이 추천하는 종목 중에서 상당수의 종목들이 초보 투자자들도 조금만 신경 쓰면 알 수 있을 정도로 매우 단순한 방법으로 골랐다는 것을 알고 나면 허탈할 것이다. 특히 별것도 아닌 단순한 것들을 가지고 대단한 세력주를 발굴한 것인 양 요란스럽게 광고하는 전문가들을 따라다니면서 수익은 커녕 손실을 입는 초보 투자자가 있다면 잠시 주식시장을 떠나서 냉정하게 생각하는 시간을 가졌으면 한다.

기술을 넘어서 심리분석

필자는 미래에셋 HTS를 이용하여 2009년 10월 26일 5일선 눌림목의 조건식을 이용하여 종목을 찾았다. 그런데 동일한 기술적 조건에 의해서 찾은 종목이라도 검색 기준 당일 차트패턴이 제각각이며 그러한 차트의 영향으로 검색 기준 다음날 흐름에서도 차이가 많았는데 그 이유는 5일선 눌림목을 형성하는 과정이 달랐기 때문이다. 즉 5일선 눌림목 중에서 [국제약품]은 다음날 곧 바로 상한가에 진입했지만 나머지 종목들은 상승률이 그리 높은 편이 아닌데 눌림목을 완성하는 5일간의 차트패턴을 자세히 보면 그 이유를 짐작할 수 있게 된다.
[SNH]는 상승 초입에 양봉의 크기가 작은데 이것은 양봉 형성 과정에서 세력성 매수 비중이 낮다는 의미다. 즉 상승 초입부터 매수에 가담하는 힘이 약하니까 5일선 눌림목이 완성되어도 그다지 좋은 흐름이 나오지 않았던 것이다. 또한 [SNH]는 세력들의 이탈을 의미하는 20일선마저도 하향하고 있는 상태에서 간신히 5일선 눌림목은 완성하고 있어서 눌림목 이후에 강한 흐름을 보이기 어려울 것이라는 것을 예상해 볼 수 있다. 이와는 다르게 [국제약품]의 경우에는 상승 초입에 강한 양봉으로 (추세 상승의 생명선인) 5일선을 돌파한 후에 조정용 음봉은 5일선을 크게 이탈하지 않은 채로 조정을 마무리했다. 이어서 검색 기준일은 세력선인 20일선을 지지받으면서 5일선을 관통하는 양봉으로 완성하면서 다음날 강항 상한가로 급등했다.

결과적으로 보면 [SNH]와 [국제약품]에서 상승 추세의 생명선인 5일선 눌림목 형성 과정에서 세력성 흐름이 반영된 종목일수록 눌림목 이후에 좋은 결과를 얻을 수 있다는 암시를 하지만 어디까지나 확률적으로만 가능성이 있다는 것이지 완벽하게 예측되는 것은 아니다.

한편 [국제약품]을 60캔들로 확장해서 보면, 이미 두 달 전부터 단기간에 (신종플루 테마로) 100 % 급등했다가 고점 대비 -50% 하락하면서 급등 이전 가격으로 돌아왔기 때문에 가격과 기간 측면에서 이미 충분한 조정이 진행된 상태이다. 따라서 [국제약품]은 급등주 중기 눌림목 관점에서 반등을 위한 2차 급등 가능성을 내포하고 있었으므로 5일선이 살아나는 것이 보이면 즉각적으로 매수 기회를 노려볼 만한 상황이었다. 상한가로 진행된 급등주나 테마주가 며칠 사이에 100% 이상 급등했다가 조정을 보이면서 -50% 이상 하락하게 되면 되돌림 현상으로 작은 반등 구간이 자주 발생한다는 것을 알고 있던 투자자라면 더 많은 관심을 두지 않을 수가 없는 상황이었다. (<그림 4> 참조)

한편 5일선 눌림목을 완성하자마자 상한가로 급등한 [국제약품] 차트에서는 두 가지 측면에서 기술적 분석을 넘어서 심리분석 단계까지 확장 해석해야 한다. 첫째는 신종플루 테마가 주식시장에서 커다란 영향력을 행사하면서 수많은 종목이 급등했었는데 그 중에 하나가 [국제약품]이었다. 둘째는 테마가 강력한 힘을 발휘할 경우에는 기술적 분석과 무관하게 급등한다는 점이다.

신종플루는 전세계를 공포로 몰아 넣을 정도로 사회 경제적으로 커다란 파장을 일으킬 정도로 엄청난 이슈로 발전했기에 주식시장에서도 대단한 영향력을 행사하고 있으며 실질적인 수혜 여부와 관계없이 신종플루 수혜 가능성이 엿보이며서 순식간에 급등하고 있다. 하지만 테마주의 시세를 주도하는 선도 종목이 있는가 하면 선도주의 후광에 기대어 따라가는 후발 종목이 있는데 [국제약품]의 경우에는 신종플루 테마에서 시세를 주도하는 선도주가 아니라 후발주이므로 자체적으로 시세를 이끌기보다는 신종플루 선도주인 [파루]의 움직임에 따라서 같이 묻어가는 경향이 있다. 따라서 [국제약품]과 같은 후발주의 움직임을 예측하려면 특정한 차트패턴보다는 선도주인 [파루] 종목의 움직임을 관찰하는 것이 더 효과적이다.

한편 [서울약품]은 기술적 차트 관점에서는 그다지 좋은 패턴이 아니었지만 검색 기준 다음날 [국제약품]과 똑같이 상한가로 마감하였는데, 이것은 강력한 재료나 테마가 진행되면 상대적으로 힘이 약한 후발주들마저도 기술적 차트와 관계없이 테마에 동조해서 상승한다는 것을 의미한다. 즉 기술적 차트분석보다는 심리적인 테마에 더 민감하게 반응한 것인데 차트만 가지고는 이러한 예측이 불가능할뿐더러 상승 이유를 알아낼 수 없다.

캔들 프로그래밍
HTS들은 종목 검색을 위하여 다양한 조건식을 제공하지만 너무나 단순하고 평면적이어서 효과적으로 세력주를 발굴하기 어렵기 때문에 검색 기능과 조건식이 풍부한 HTS를 사용하는 것이 좋다. 하지만 아무리 많은 검색 기능과 조건식을 제공해도 정교하게 세력주 조건식을 만들려면 너무나 복잡하고 사용환경이 조잡해서 불편한 점이 있다. 그래서 필자는 직접 세력주 검색 프로그램을 만들게 되었는데 마소 독자들은 필요한 부분을 확장해서 사용할 수 있다. 주식투자 프로그래밍 관점에서 종목 검색을 하려면 현재와 과거 시세를 접근해야 하는데 세력주 검색 프로그램을 만들려면 캔들 데이터를 모아서 가격, 거래량, 이동평균 등을 분석해야 하므로 제일 먼저 캔들 데이터를 모으는 프로그램을 만들 것이다.

캔들 프로그래밍은 특정한 종목의 캔들 데이터값을 다운로드하는 것으로 사이보스플러스는 캔들 시간 단위에 따라서 데이터 구조가 달라서 사용하는 함수가 다르므로 주의해야 한다. 즉 일(day), 주(week), 월(month) 단위 캔들은 시세 구조가 똑같아서 동일한 함수로 처리하지만 분(minute) 단위 캔들은 다른 함수로 처리해야 한다.

사이보스플러스에서 캔들 데이터를 수신하려면 CbGraph1() 함수를 이용해야 하는데 이 함수는 캔들 데이터를 넘겨준다. 그런데 이 함수는 한 번에 최대 2,800개까지 넘겨주기 때문에 그 이상 과거 캔들 데이터는 받을 수 없으며 일간, 주간, 월간 단위의 캔들 데이터만 돌려주므로 분 단위 캔들 데이터는 다름 함수를 이용해야 한다. 간단하게 <표 4>와 <리스트 1>을 실었으며 자세한 건 부록으로 제공하는 완전한 소스 코드와 사이보스플러스 도움말을 참조하기 바란다.

<리스트 1> 캔들 데이터 수신
pStockWeek.CreateInstance(__uuidof(CbGraph1));  // 생성
pStockWeek->SetInputValue(0, "A005930");  // 삼성전자
pStockWeek->SetInputValue(1, 'D');  // 일주월구분('D','W','M')
pStockWeek->SetInputValue(3, 2800);  // 데이터 수
pStockWeek->BlockRequest(); // 요청
// 과거 데이터랑 업데이트를 할 경우를 위해서 맨 뒤부터
long count = (long)(_variant_t)pStockWeek->GetHeaderValue(3);   // 수신 개수
for(itempos = (count - 1); itempos >= 0; itempos --, item_total++) {
    pri.time = (long)(_variant_t)pStockWeek->GetDataValue(0, itempos); //날짜
    pri.endval = (long)(_variant_t)pStockWeek->GetDataValue(4, itempos); //종가
pri.amount = (_variant_t)pStockWeek->GetDataValue(5, itempos); //거래량
    pri.yesday_daebi = (long)(_variant_t)pStockWeek->GetDataValue(6, itempos); //전일대비
    yesday_price = p_dayinfo_w->pri.endval - p_dayinfo_w->pri.yesday_daebi;
    pri.rate = calc_rate(yesday_price, p_dayinfo_w->pri.yesday_daebi); // 등락율 계산
    p_daygate_serv->append(&dayinfo_w); // 추가
}
pStockWeek.Release();   // 해체

 

<화면 5>는 캔들 데이터를 수신하기 위해서 만든 프로그램이다. 지수코드는 일반 종목코드에 포함되어 있지 않아서 선택창을 만들어서 선택하도록 하였고 캔들 데이터는 PC에 저장과 동시에 읽을 수 있도록 했으며 엑셀로 활용할 수 있도록 텍스트로 저장할 수 있다.

세력주 검색 프로그래밍
직접 세력주를 발굴하는 프로그램을 개발하려면 보다 정교하게 캔들 데이터를 필터렁해야 한다. HTS에서 제공하는 검색 방법으로도 어느 정도 세력주를 찾을 수 있지만 HTS 검색 과정은 너무 단순해서 필요 없는 군더더기 종목까지 제시하므로 사용자가 일일이 차트를 보면서 불필요한 종목을 제거해야 한다. 특히 세력주 검색이 힘든 이유는 세력주를 찾는 것이 어려운 것이 아니라 세력주가 아닌 불필요한 종목을 제거하기 위해서 날마다 저녁 늦게까지 많은 시간을 낭비하기 때문이다. 그래서 필자는 HTS 검색 기능의 단점을 보완하고자 불필요한 종목을 정교하게 필터링하는 세력주 발굴 프로그램을 개발하였는데 그 과정과 원리를 설명하겠다.

차트 검색을 하려면 검색 날짜 기준으로 과거 캔들 데이터를 가지고 여러 조건식을 적용하는데 보통 [이동평균값, 전일가격, 크로스, 고점, 저점, 평균거래량, 양봉 개수, 누적 상승율] 데이터를 확인해야 한다. 세력주 발굴 프로그램은 사람이 실제로 차트에 나타난 캔들 데이터를 분석하면서 세력주를 찾는 과정을 프로그램으로 구현한 것이므로 세력주 발굴에 필요한 정보를 미리 생성해 두어야만 한다.

이동평균값은 현재 가격이 상승 추세를 나타내는 정배열 상태인지 아니면 하락을 의미하는 역배열 상태를 구별하기 위해서 필요한 값으로 일반적으로 많이 사용하는 이동평균값인 {5, 20, 60, 120, 240, 480} 날짜로 변수를 고정시켰다. 그런데 필자가 지정한 이동평균값은 정확한 의미에서 이동평균값이 아니라 바로 전날까지 가격을 합쳐놓은 값이다. 그것은 검색하는 순간 가격과 전날까지의 가격을 합쳐서 실시간으로 이동평균 가격을 재계산해 줘야 정확한 평균값을 구할 수 있기 때문에 바로 전날까지의 가격 합계를 모아둔 것이다.

차트분석에서 골드 크로스와 데드 크로스는 추세의 변화가 일어나는 변곡점의 신호를 해석하는 경향이 있다. 그런데 실제로 차트분석에서는 골드 / 데드 크로스가 나타났다고 해서 반드시 추세 전환이 일어나는 것이 아니기 때문에 크로스 자체만 가지고는 세력주를 판단하지는 않지만 크로스가 발생한 지점을 기점으로 등락률을 비교할 때 중요한 변수로 작용하기 때문에 단기 세력주 발굴에서는 5 / 20 일선을 체크해 둔다.

주식시장에서 인기없는 주식은 상대적으로 투자에 참여하는 사람이 적어서 거래량이 줄어드는 경향이 있는데 특히 장기간 투자자들로부터 외면받아서 거래량이 부족한 종목을 소외주라고 부른다. 그런데 이와 같은 소외주 중에서 일부 종목에서 어느 날 갑자기 대규모 거래량이 발생하면 세력주 검색에 포착되기 쉽다. 하지만 이와 같이 평상시 거래량이 부족한 종목이 느닷없이 세력주 범위에 포착되면 중기적으로 시세를 분출하기보다는 단발적인 재료로 잠시 상승하다가 곧 바로 소외주로 돌아가버리는 경향이 있으니 조심해야 한다. 그렇지 않고 일시적으로 강한 흐름을 보이는 소외주를 강한 세력주로 착각하여 멋모르고 보유하면 거래량 부족으로 손절매조차 어려운 상황에 직면할 수 있다. 그래서 좋은 세력주가 되려면 당일 거래량도 중요하지만 평균거래량도 뒷받침되어야 하고, 필자는 세력주 발굴을 위해서 평균거래량을 체크한다.

세력주 검색기는 먼저 증권사보로부터 종목 리스트를 받아서 전 종목에 대한 현재 가격 시세를 다운로드한 후에 각 종목별로 과거 캔들 데이터부터 세력주 조건을 알맞게 필터링하면서 적합한 종목을 출력한다. 그런데 과거 캔들 데이터로부터 세력주 조건을 실시간으로 다운로드하면서 필터링하려면 시간이 많이 걸리므로 전날 기준으로 미리 생성해두었다가 필요할 때마다 검색하는 것이 효과적이다. 따라서 필자는 세력주 검색기에 세력주 분석용 데이터 만들기 기능을 추가하였으며 이 기능을 수행시키면 (필자 컴퓨터 기준으로) 6분 정도 소요되므로 당일 처음으로 세력주를 검색하려면 6분간 분석용 데이터를 생성하는 동안 기다려야 하고 2번째 검색부터는 대략 4초 만에 검색이 끝난다.

<화면 6>은 내부적으로 세력주를 넘어서 그날 시황 흐름을 분석할 수 있을 정도로 다양한 정보를 스캐닝하면서 세력주를 필터링한다. 세력주 매매기법 중에서 가장 강력하고도 널리 알려진 것은 상한가 매매기법인데 매수 시점에 따라서 크게 세분화되어 있다. 먼저 상한가에 진입하는 순간을 노려서 따라붙는 상한가 따라잡기, 상한가 다음날 종가 무렵에 단봉(작은 캔들)에서 추격 매수하는 강약 눌림목, 상한가 이후에 며칠간 조정을 보이면서 양봉으로 N 파동을 그리는 상한가 눌림목, 연속 상한가 이후에 상한가가 풀리는 조정 구간인 (상한가)급등주 눌림목 매수 기법 등이 널리 알려졌다. 그런데 상한가 따라잡기는 데이트레이딩 수준의 단타 매매를 전문으로 하는 전업투자자가 아니면 접근하기 어렵기 때문에 여기서는 다루지 않았다음 번 연재에 계획된 상한가 따라잡기에서 상한가 따라잡기용 신호기 프로그램과 함께 자세하게 다룰 것이다.

실제로 인터넷에서 활동하는 수많은 세력주 전문가들이 추천하는 종목을 살펴보면 상한가와 밀접한 관련이 있다. 이 글을 보는 독자 중에서 세력주 전문가가 추천한 종목의 차트를 확인해보라. 과거 며칠 이내에 상한가 캔들이 포함되어 있는 것을 쉽게 볼 수 있을 것이다. 세력주 매매에서 상한가는 그 어떤 신호보다는 강력한 신호이기 때문에 상한가에 진입하는 종목을 유심히 관찰했다가 이후에 움직임을 살피면서 매수에 가담하는 투자자들이 적지 않다. 그런데 너무 오른 상태에서 상한가로 진입하는 종목을 추격 매수했다가 상한가가 무너지면서 급락할 경우에는 순식간에 크게 손실을 볼 수 있기 때문에 무작정 상한가 종목을 매수하는 것은 휘발유를 등에 지고 불 속에 뛰어드는 것만큼이나 위험한 행동이다. 따라서 무조건 아무 상한가 종목을 매수하기보다는 전고점 대비 충분히 조정을 받아서 상대적으로 가격이 낮아진 구간에서 발생하는 첫 번째 상한가 종목으로 압축하는 것이 안전하다.

첫 상한가는 20일 이상 조용히 있다가 상한가에 진입하는 20일 첫 상한가와 그보다 짧게 5일 이상 기간을 두고 상한가에 진입하는 5일 첫 상한가로 구분한다. 20일 상한가는 최소한 20일 이상 조정을 거친 후에 발생하는 상한가이므로 세력의 은밀한 매집 흐름과 관련이 있을 수 있기 때문에 20일 첫 상한가 이후에 상승 추세로 전환될 경우에는 눌림목 구간에서 매수하려는 전문 투자자들이 많다. 이에 반하여 5일 첫 상한가는 5일 이전에 이미 한번 이상 상한가가 발생한 다음에 또 다시 상한가에 진입한 상태이므로 짧은 기간 안에 강력한 시세 분출 가능성이 높다. 특히 테마주나 급등주는 다단계 계단 상승을 위해서 상승 초입 구간에서 5일 첫 상한가에서 매집 단계를 거친 후에 2차 급등 패턴이 자주 보인다.

상한가는 말 그대로 가격 제한 상승폭까지 오른 종목을 가리키는 만큼 강력한 시세를 반영한다고 볼 수 있다. 하지만 상한가에 진입한 종목이 모두 급등하는 것은 아니고 극히 일부 종목만 연속해서 급등하기 때문에 어설프게 상한가 종목을 매수했다가는 잦은 손실로 3개월도 안 걸려 깡통을 찰 것이다. 그래서 상한가 매수의 위험 부담을 줄이면서 동시에 강력한 시세 분출 가능성이 있는 종목에 접근하기 위해서는 상한가 이후에 발생하는 눌림목에서 매수하는 상한가 눌림목 기법이 있는데 상한가 눌림목 중에서도 상대적으로 가격과 기간 조정을 충분히 받은 첫 번째 상한가 이후에 나타나는 눌림목은 세력주 전문 투자자들의 단골 메뉴나 마찬가지다.

일반적으로 급등주는 빨리 크게 오른 종목을 가리키지만 세력주 관점에서 급등주란 연속 상한가로 오르는 종목을 의미한다. 세력성 급등주는 조정 구간이 짧고 조정 이후에는 또 다시 상한가로 상승하는 경우가 많아서 연속 상한가가 풀리는 구간이 눌림목의 역할을 하기 때문에 이 때 매수해야 한다. 이와 같이 연속 상한가로 급등하던 종목이 상한가가 풀릴 때를 급등주 눌림목이라고 한다. 급등주 눌림목 매매기법은 경험이 풍부한 노련한 전문 투자자들도 종종 실패할 정도로 굉장히 위험하고 어려운 방법이므로 여기서는 자세하게 다루지 않겠다. 다만 급등주 전문 투자자들을 위해서 세력주 검색기에서는 급등주 눌림목을 찾을 수 있도록 지원하고 있다. 세력주 검색기는 5일선 눌림목과 20일선 눌림목 검색 기능을 지원하고 있는데 앞서 눌림목 투자 기법에서 충분히 설명하였기 때문에 세력주 검색기와 관련해서는 따로 설명하지 않겠다. 이 밖에도 세력주 검색기에는 다양한 기능을 제공하고 있는데 보다 자세한 것은 부록을 제공하는 소스 코드를 참조하기 바란다.

<표 6>은 2009년 8월 17일 발생한 5/20일 첫 상한가를 중심으로 이후에 나타나는 상한가 눌림목과의 연속성을 정리한 것이다. 17일 발생한 첫 상한가 중에서 절반 이상은 신종플루 테마와 관련이 있는데 테마를 중심으로 첫 상한가에 진입한 종목들은 2~3일 이내에 대부분 상한가 눌림목을 완성한 후에 2차 급등한 데 반하여 17일 첫 상한가에 진입했어도 눌림목이 없거나 너무 약해서 상승하지 않은 종목들도 있다. 또한 신종플루라는 동일한 테마로 첫 상한가에 진입했어도 파루, 씨티씨바이오처럼 강하게 눌림목을 형성한 이후에 2차로 급등한 종목이 있는가하면 그렇지 않고 대성미생물처럼 약하게 눌림목을 형성한 이후에 짧게 상승을 마감한 종목도 있다. 이러한 차이는 상승에 가담한 세력의 힘의 차이로 해석할 수 있는데 개별적인 종목보다는 테마주에 매수 에너지가 강하기 때문이다. 또한 차트에서는 해석할 수 없는 차트 넘어서 심리분석적인 요인이 크게 작용하였다. 과거 중앙백신은 조류 독감 테마를 이끌면서 수백 % 급등했던 전력이 있었기 때문에 그것을 기억하고 있던 수많은 테마주 사냥꾼들이 조류 독감 백신 테마에 대한 학습 효과를 노리고 집단적으로 가담하면서 대장주로 발전한 것이다. 하지만 대한뉴팜은 오래 전부터 자원개발 테마로 갈라져서 수백 % 급등한 뒤로 조류 독감 테마와는 연동성이 떨어진 종목이라서 신종플루 테마에서는 그다지 강력한 흐름을 보이지 못했다. 마찬가지로 제일바이오, 이-글벳은 과거 조류 독감 때부터 대장주를 따라다니는 후발주로만 움직였기에 이번에도 여전히 신종플루 대장주인 [중앙백신]를 매수하지 못한 동호회가 뒤늦게 추격매수하면서 테마에 합류한 것으로 보인다. 한편 [엔빅스]는 과거 바이오 테마주가 급등할 때 뒤늦게 바이오 테마에 합류하면서 수백 % 급등했었고 조류 독감과는 거리가 멀었던 종목이지만 신종플루 테마가 급등할 때 플루 진단 키트 재료를 터트리면서 새롭게 진입한 종목이다.

이와 같이 boolhts로 구현한 세력주 검색기에 찾은 첫 상한가와 눌림목을 살펴보았는데 기술적 분석은 정치, 경제, 사회적으로 이슈와 맞물리기도 하지만 과거 2~3년 흐름까지도 심리적으로 반영되기 때문에 차트만 가지고는 미래를 예측할 수가 없으므로 수년간 시장에 반영된 심리까지 읽어내야 한다. 또한 때로는 과거 패턴보다는 오늘 당장의 뉴스와 재료가 더 큰 위력을 발휘하기 때문에 차트분석 그 자체만으로는 한계가 많다.

<리스트 2> 세력주 검색용 정보 생성
p_mopa_r = p_mopa_avg->find_day(workdate);
p_mopa_c = p_mopa_avg->find_cross520(p_mopa_avg->get_head(), p_mopa_r); // 5+20일 크스를 찾는다.
if(p_mopa_c != nnull) { // 크로스 없음
  p_day->calc_highlow(p_mopa_c->data.time, p_mopa_r->data.time, &highval, &lowval);
  if(p_mopa_r->data.avg_5 > p_mopa_r->data.avg_20) {  // 정배열
    p_pre_c->value.pre_cross520_bound = highval;
  }
  else {  // 역배열
    p_pre_c->value.pre_cross520_bound = lowval;
  }
}
if(get_avg(p_day_f, &avgamount, 5, ffalse) == ttrue) {
  p_pre_c->value.avgamount5 = avgamount;// 5일 평균거래량
}
if(get_avg(p_day_f, &avgamount, 20, ffalse) == ttrue) {
  p_pre_c->value.avgamount20 = avgamount;// 20일 평균거래량
}
import!_predata_dayavg5(&p_pre_c->value, p_day_f, p_mopa_f);
p_lastup = p_day->find_lastupmax(p_day_f);  // 직전 상한가
if(p_lastup != nnull) {
  p_pre_c->value.pre_upmax.day = 1 + (p_day->find_recorder(p_day_f) - p_day->find_recorder(p_lastup));
  p_pre_c->value.pre_upmax.val = p_lastup->value.pri.endval;
  if(p_lastup == p_day_f) {
    p_pre_c->value.series_maxnum = p_day->count_maxseries(p_day_f, ttrue);
  }
}
p_pre_c->value.non_minuscandle_35d = p_day->count_nonminuscandle(predata_non_miniscandle_range);
p_day->count_pluscandle_n_ratesum(predata_pluscandle_range, p_day_f,
  &p_pre_c->value.pluscandle_25d, &p_pre_c->value.ratesum_25d); // 25일간 (양봉수, 상승율합)


<리스트 3> 세력주 필터링

if(is_nowfxin_updown_upmax(p_nowfxin_w) == ttrue) { // 상한가
  if(predata_yes.series_maxnum >= 1) {
    this->m_nowanal.num_upmax_series++;// 연속상한가
  }
  // 첫 상한가 처리
  if(predata_yes.pre_upmax.day > 20) { // 20일첫 상한가
    if(calc_rate(predata_yes.pre_cross520.val,
      (p_link->value.fixvalue.pri.endval - predata_yes.pre_cross520.val)) <= upmax_20day_precross_gab) {  
      this->m_nowanal.num_upmax_20day++;// 20일첫 상한가-5일첫 상한가는 빠짐
    }
  }
  else if((predata_yes.pre_upmax.day == 0) ||  // 오늘 첫 상한가
    (predata_yes.pre_upmax.day > 5)) {
    if(calc_rate(predata_yes.pre_cross520.val,
      (p_link->value.fixvalue.pri.endval - predata_yes.pre_cross520.val)) <= upmax_5day_precross_gab) {  
      this->m_nowanal.num_upmax_5day++; // 5일첫 상한가(직전크로스에서 35%이내만)
    }
  }
}
else {
  if(is_nowlink_upmax_pause(p_link_yesday, p_link) == ttrue) {
      this->m_nowanal.num_upmax_pause++; // 상한가눌림목
  }
}
if(is_nowfxin_kangyak_second(p_nowfxin_w) == ttrue) {
  if(is_nowlink_kangyak_strong(&predata_yes, p_link) == ttrue) {
    this->m_nowanal.num_kangyakcandle++; // 강약패턴
  }
  if(is_nowfxin_rocketpause(p_nowfxin_w, &predata_yes) == ttrue) {
    this->m_nowanal.num_rocket_pause1++;  // 급등주눌림목
  }
}

다음에는…
주식투자 프로그래밍 관점에서 기술적 분석을 넘어서 심리분석은 다룰 필요가 없었지만 오해의 소지가 있어서 보충한 것이다. 모호하고 객관화시키기 어려운 기본적 분석의 한계를 극복하기 위해서 출발한 기술적 분석은 명쾌하고 간결한 패턴을 제시하기 때문에 수많은 초보 투자자들이 선호하는 경향이 있다. 하지만 단편적으로 계량화된 차트에서 읽어낼 수 없는 수많은 시장 변수들 때문에 기술적 분석은 더 많은 한계를 지녔다. 또한 최근에는 기하급수적으로 늘어난 세력주 전문가들이 회원들을 모아서 동호회를 결성한 뒤에 집단적으로 매매에 참여하면서 스스로 세력화하고 있다는 점을 간과해서는 안 된다. 특히 세력화된 동호회가 중소형 종목 매매에 가담하는 경우에는 동호회 스스로가 세력이 되어서 차트 모양을 변형, 왜곡시키는 경우도 종종 있다. 따라서 기술적 분석에 의존한 투자는 세력주에 대한 경험이 풍부하고 노련한 전문 투자자가 아니면 실패할 확률이 굉장히 높기 때문에 각별한 주의가 필요하다. 그렇지 않고 날마다 수익을 낸다는 인터넷 동호회와 만능열쇠처럼 쌈박해 보이는 투자 서적에 나온 것들을 연습처럼 따라했다가는 몇 달도 안 되어서 깡통의 길로 갈 수도 있으니 어설프고 막연한 생각으로 기술적 분석에 접근하지 말았으면 한다.

 

원본 출처 : 월간 마이크로소프트웨어

 

게시글 찬성/반대

  • 5추천
  • 0반대
내 아이디와 비밀번호가 유출되었다? 자세히보기 →

운영배심원의견

운영배심원 의견?
운영배심원의견이란
운영배심원 의견이란?
게시판 활동 내용에 따라 매월 새롭게 선정되는
운영배심원(10인 이하)이 의견을 행사할 수 있습니다.

운영배심원 4인이 글 내리기에 의견을 행사하게 되면
해당 글의 추천수와 반대수를 비교하여 반대수가
추천수를 넘어서는 경우에는 해당 글이 블라인드 처리
됩니다.

댓글목록

댓글 작성하기

댓글쓰기 0 / 1000

게시판버튼

광고영역