최근 AI업계에서 핫한 주제 중 하나로 MCP(Model Context Protocol)라는 규격이 있다.

그동안 AI는 두뇌만 있고, 손발이 없는 형국이었는 데, 이제 AI에게 손발을 붙여주고, 두뇌와 손발 사이에 MCP규약을 통해서 통신을 하도록 해서 통합 자동화 시스템 구축이 가능해 진 것이다.

이렇게, AI의 손발 역할을 해 주는 소프트웨어를 기술적 용어로 'MCP 서버'라고 부른다.

MCP라는 규격이 발표된 지 채 1년도 지나지 않았는 데, 이미 수천개의 'MCP서버'가 발표되었다.

(https://www.pulsemcp.com/)

 

아직까지는 대부분의 MCP서버가 소프트웨어 개발에 필요한 작업을 수행하는 도구들이다.

그런데, 이제 소프트웨어 개발 범주를 넘어서 날씨 검색, 티켓 예약등 온라인으로 수행 가능한 여러 방면의 작업으로 확장되고 있다.

 

그런데... 이제 금융 쪽으로도 확장되고 있다.

https://www.pulsemcp.com/servers/dragon1086-kospi-kosdaq-stock

 

KOSPI/KOSDAQ Stock Data MCP Server by Sangrok Mun | PulseMCP

MCP (Model Context Protocol) Server. Integrates with pykrx to provide real-time access to KOSPI and KOSDAQ stock market data, offering tools for retrieving ticker symbols, OHLCV data, market capitalization, fundamental metrics, and trading volumes.

www.pulsemcp.com

 

기능 설명 : 코스피/코스닥 주식 시장 데이터에 실시간으로 접근해서, 종목코드/일일 가격정보/시가총액/재무지표/거래량등의 정보를 제공.

 

AI가 실시간으로 한국 주식 시장 정보를 검색할 수 있도록 도와주는 도구(MCP서버)인 것이다.

 

한국 주식시장만 있는 게 아니다.

미국 기업 재무 정보 도구 : https://www.pulsemcp.com/servers/financial-datasets

미국 재무부 발표 매크로 정보 도구 : https://www.pulsemcp.com/servers/quantgeekdev-fiscal-data

암호 화폐 시장 정보 도구 : https://www.pulsemcp.com/servers/longmans-coin-api

중국 주식 시장 정보 도구 : https://www.pulsemcp.com/servers/ttjslbz001-akshare

 

이제 엑셀이나 프로그래밍을 하지 않아도, AI에게 한글로 명령하면 (엑셀이나 여타 데이터 분석 작업없이) 종목을 분석해 주는 시대가 올 수도 있다는 의미이다.

 

아직 직접 사용해 보지 않아서, 실제로 어느 정도로 매끄럽게 작동하는 지 확인해 보지는 못했지만, MCP 규약이 발표된 지 1년도 채 지나지 않은 현 시점에 AI에 금융 정보 도구를 장착하려는 수많은 시도가 출현한다는 사실은 주목할 만하다.

 

유명 코딩 유튜버의 MCP 소개 영상도 예제가 AI에 주식 매매 도구 장착하기 이다.

https://www.youtube.com/watch?v=EswVjHZMn74

 

시간이 좀 더 흐르면 AI에 가격 정보뿐만 아니라, 기업 재무 정보 도구, 매매 도구까지 장착해서, AI에게 투자 전략을 한글로 설명하면, AI가 알아서 전략에 따라 매매를 실행해 주는 시대가 올 지도 모르겠다.

(소프트웨어 개발 분야의 경우 '바이브 코딩'이라고 해서 AI에게 말로 설명해서 개발하는 시대가 시작되었는 데, 투자 업계에도 이렇게 바뀔 수 있다.)

 

 

 

 

 

모니시 파브라이는 투자는 극도의 인내심이 필요하며, 투자자의 매매 활동은 수익에 도움이 안 되며, 오히려 수익을 까먹는 경향이 있다는 설명을 한다.

그 근거로 피델리티의 통계를 인용하는 데,  고객 계좌 중 수익율이 가장 높은 10%는 대부분 휴면계좌이거나 계좌의 존재를 잊어버린 죽은 계좌 이었다고 한다.

 

앙드레 코스톨라니가 우량주 매수 후 수면제 먹고 2년 간 자고 일어나면 수익이 나 있을 것이라고 했던 발언과 일맥상통한다.

 

말은 쉬운 데 실천하기는 어려운 것 같다.

극도의 인내심이라는 게 누구나 가지고 있는 것은 아닌 듯.

 

https://www.youtube.com/watch?v=hc5IJz8PAxM

 

Julia언어로 '상장 법인 정보'를 획득하는 기능을 작성해봤다.

 

소스 코드는 다음 함수 3개로 되어 있다.

- f상장_법인_정보() : KRX 웹사이트에서 상장 법인 정보를 추출하는 함수.

- csv저장_법인_정보() : f상장_법인_정보()로 얻은 데이터를 CSV파일로 저장.

- csv읽기_법인_정보() : 저장된 CSV파일을 불러옴.

 

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

using Dates
using InlineStrings
using DataFrames
using TypedTables
using HTTP
using Gumbo
using Cascadia
using StringEncodings
using CSV


# KRX 웹사이트에서 상장 법인 정보를 얻는 함수.
function f상장_법인_정보()::Table
    상장_법인_정보 = DataFrame(
        종목코드=String7[], # 종목코드는 길이가 일정하므로, 고정폭 문자열 자료형 사용.
        회사명=String[],
        업종=String[],
        주요제품=String[],
        상장일=Date[],
        결산월=UInt8[])

    # KRX 상장 법인 정보 URL
    url = "https://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13"
    응답값 = HTTP.get(url)
    응답_문자열 = StringEncodings.decode(응답값.body, "EUC-KR") # EUC-KR인코딩을 UTF-8인코딩으로 변환

    # Gumbo.jl을 이용해서 HTML 파싱.
    문서 = parsehtml(응답_문자열)

    # Cascadia.jl을 사용해서 테이블의 행을 추출.
    rows = eachmatch(Selector("body > table > tbody > tr"), 문서.root)

    # 각각의 행(tr)에서 정보를 추출하는 반복문.
    for tr in rows
        cols = eachmatch(Selector("td"), tr)

        회사명 = ""
        종목코드 = ""
        업종 = ""
        주요제품 = ""
        상장일 = Date(0)
        결산월 = 0

        for (열, td) in enumerate(cols)
            문자열 = strip(text(td))  # 공백 문자 제거

            if 열 == 1
                회사명 = 문자열
            elseif 열 == 2
                종목코드 = 문자열
            elseif 열 == 3
                업종 = 문자열
            elseif 열 == 4
                주요제품 = 문자열
            elseif 열 == 5
                try
                    상장일 = Date(문자열, "yyyy-mm-dd")
                catch e
                    println("상장일 에러 : $(종목코드) '$문자열'")
                end
            elseif 열 == 6
                결산월 = tryparse(UInt8, match(r"\d+", 문자열).match)
            end
        end

        if !isempty(종목코드) && !isempty(회사명) && !isempty(업종) && 상장일 != Date(0)
            push!(상장_법인_정보, Dict(
                :종목코드 => 종목코드,
                :회사명 => 회사명,
                :업종 => 업종,
                :주요제품 => 주요제품,
                :상장일 => 상장일,
                :결산월 => 결산월))
        end
    end

    # println("행 수량 : $(length(rows))")
    println("법인정보 수량 : $(nrow(상장_법인_정보))")

    # Type-stable TypedTables.jl형태로 반환.
    # 어쩌면 그냥 DataFrame을 그대로 쓰는 게 나을런지도.
    return Table(상장_법인_정보)
end

function csv저장_법인_정보()
    CSV.write("krx_ticker.csv", f상장_법인_정보())
end

function csv읽기_법인_정보()::Table
    return CSV.read("krx_ticker.csv", Table, types=Dict(1 => String, 5 => Date, 6 => UInt8))
end

# f상장_법인_정보()
# csv저장_법인_정보()
# csv읽기_법인_정보()

사치품은 가격이 오를수록 오픈런, 사재기, 되팔이등이 발생하면서 수요가 증가한다.

식료품은 가격이 내릴수록 할인행사를 놓치지 않으려고 수요가 증가한다.

둘 다 현실 세계에서 흔하게 발생하는 현상이다.

 

https://www.youtube.com/watch?v=k2ptte1MYlo

 

워렌 버핏이 주식을 (사치품이 아니라) 식료품 사듯이 산다는 말을 처음으로 들었을 때는 그게 당연하다고 생각했다.

그런데, 경험이 쌓일수록 떨어지는 칼날은 잡는 게 아니라는 것을 깨달았다.

주식을 식료품 사듯이 산다는 것은 시장의 등락에 무관하게 자신의 판단대로 장기간 보유할 수 있는 워렌 버핏에게는 맞는 말이겠지만, 대부분의 사람은 하락 추세가 지속되거나, 좀처럼 반등하지 않고 오랜 시간 바닥을 기어다니면, 멘탈이 나가서 못 버티고 최악의 시점에 매도하는 경우가 흔하다.

 

게다가, 워렌 버핏은 항상 시장을 모른다고 말하면서도 마켓 타이밍을 귀신같이 한다.

2001년 IT버블은 피해갔으며,

2009년(리먼 사태 다음 해)에 시장이 반등하기 시작하는 시점에 철도 회사(BNSF)를 줍줍했다.

큰 폭락 사태가 발생해도 타격을 적게 받거나, 금방 회복하거나, 혹은 거꾸로 자산을 크게 불리는 기회로 역이용했다.

 

워렌 버핏은 외모는 평범해 보이지만, 결코 보통 사람이 아니다. 

워렌 버핏은 우리와 다르다는 것을 인식하고, 함부로 따라하지 말아야 한다.

다만, 너무 고평가 된 자산은 피하는 원칙 정도만 지켜도 나쁘지 않은 것 같다.

 

 

 

 

겸손 - 하워드 막스

투자 이야기 2025. 2. 19. 16:30 Posted by UnHa Kim

조금만 손실이 나도 기분이 침울해지고,

조금만 수익이 나도 의기양양 해질려고 한다.

 

많은 자산군이 상승하고, 지지부진하던 국장마저 반등하는 것처럼 보여질 때,

아무 것도 한 것 없이, 단지, 시장이 상승하는 시기에 맞닥뜨렸을 뿐인데도,

마치 스스로 뭔가를 해낸 듯한 기분이 드는 게 참 묘하다.

 

그런데, 유튜브 알고리즘이 정말 좋은 영상을 내밀어준다.

 

채권 투자의 대가인 하워드 막스가 겸손에 대해서 말하는 영상이다.

 

https://www.youtube.com/watch?v=GrcacCGdoEA

 

인상 깊은 어구 정리.

 

겸손은 중요한 자질이다.

끝까지 살아남는 사람이 승자이고, 살아남는 것은 겸손에서 시작하기 때문이다.

 

키가 185cm인 사람이 평균 수심이 150cm인 개천을 건너다가 익사했다는 사실을 잊지말라.

평균적으로 생존한다는 것은 의미가 없고, 매일, 항상, 나쁜 상황에서도 생존해야 한다.

 

대부분의 사람은 자신의 결점과 한계에 대해서 심리적 방어기제가 있으므로, 겸손한 태도를 유지한다는 것은 어려운 일이다.

 

성공은 실패의 씨앗을 담고 있고, 실패는 성공의 씨앗을 담고 있다.

 

성공으로부터 배우는 교훈은 다음과 같은 데, 자존심만 드높여서 투자에 좋지 않다.

- 생각보다 쉽네.  (혹은 별 거 아니네. )

- (자신이 잘 모르는) 다른 분야에서도 잘 할 수 있을 거야.

- 더 많은 돈을 투입해도 잘 될 거야.

- 내가 혼자서 잘 한 거야.

 

자신감에는 균형이 필요하다.

- 자신감이 너무 부족하면, 가격이 하락할 때마다 매도하게 될 것이고,

- 자신감이 과도하면, 가격이 하락할 때마다 더 많이 매수하게 되면서,

두 경우 모두 투자자로서 제 기능을 하지 못하게 된다.

 

 

유튜브  '메이킹 알파' 채널은 정말 좋은 거 같다.

 

주린이가 몇 년간 투자해 본 소감.

투자 이야기 2025. 2. 14. 01:23 Posted by UnHa Kim

투자 이론 공부할 때는 금방 돈을 긁어모을 수 있을 것 같아서 의기양양 했지만, 몇 년 지나니까 책으로 배운 투자 실력이라는 게 현실 세계에서 얼마나 하찮은 지 깨닫게 됨.

내가 사면 하락하고, 내가 팔면 상승하는 패턴이 반복되면서, 알고보니 내가 천하의 똥손이라는 것을 깨닫게 됨.

그나마 위안이라면 (극소수의 재능있는 사람을 제외한) 대부분의 사람은 고만고만한 똥손 수준에서 벗어나지 못한다는 거.

 

단기투자는 경쟁이 너무 치열하고, 판단을 흐리는 가짜 뉴스도 많으며,

장기투자는 지수 대비 부진한 투자성과를 몇 년씩 참고 버텨낼 수 있는 멘탈과 믿음이 필요해서,

'투자는 간단하지만, 쉽지는 않다'라는 워렌 버핏의 말이 무슨 뜻인지 뒤늦게 깨닫게 됨.

 

미약한 투자 실력으로 인해  스트레스에 시달리면서 삶의 질이 바닥을 친 이후에야 (백테스트 상의) 수익율을 따지기보다는 생존 위주의 방어적인 분산 전략으로 갈아탄 이후에야, 그나마 버틸만한 투자 라이프가 시작된 느낌.

 

시장이 부진하면 아무리 열심히 종목 분석을 해도 소용없고, 분산 투자 전략에 따라 보유하고 있던 자산군 중 하나가 상승세에 올라타면서 의도하지 않게 계좌 전체 수익율을 살려주는 경험이 반복됨.

결국 돈을 벌어다 주는 것은 공들인 분석이 아니고, 특정 자산군의 상승세, 즉 시장이고, 그런 의도하지 않은 시장의 과실을 따 먹을 수 있게 고안된 분산 투자가 개미들의 생명줄인 듯.

 

벤저민 그레이엄의 저서 '현명한 투자자'에는 대부분의 투자자에게 평균 정도의 수익율을 손쉽게 얻을 수 있는 방어적인 투자법(즉, 분산 투자 전략)이 적합하다고 나와 있는 데, 어지간히 책 읽고 공부하는 것으로는 그 수준에서 벗어나기 힘들더라.

전체 투자금액의 80% 이상을 주식에만 투자하면서 시장 대비 초과 수익을 올린다는 것은 막상 해 보면 쉬운 일이 아님.

 

https://ghts.tistory.com/56

 

현명한 투자자

가치 투자라는 개념을 창안한 벤저민 그레이엄이 일반인을 위해서 (그나마) 읽기 쉽게 썼다는 책이 '현명한 투자자'이다. 세계 최고 투자자인 워렌 버핏이 투자 관련 서적 중 최고로 꼽은 책이기

ghts.tistory.com

 

https://ghts.tistory.com/146

 

현명한 투자자 요약판

워렌 버핏이 최고의 투자서라고 극찬하는 '현명한 투자자'는 가독성이 낮은 점이 걸림돌이었다. '현명한 투자자'의 주요 내용을 읽기 편한 문체로 요약한 책이 있었다는 것을 뒤늦게 알았다. 이

ghts.tistory.com

 

다들 워렌 버핏의 옆집 할아버지 같은 평범한 겉모습에 속아서, 책 몇 권 읽고나서, 워렌 버핏의 투자법을 따라하려고 시도하지만, 얼마 지나지 않아, 일반인은 쉽게 따라할 수 없다는 것을 깨닫게 됨.

해자가 있는 종목은 애초에 존재 자체가 드물고, 혹여나 찾더라도 대개 고평가 되어 있으며, 운 좋게 저평가 되어 있는 해자 종목을 찾더라도, 기술 발전과 사회 변화로 인해서 해자가 사라지는 경우도 있어서, 워렌 버핏의 투자법을 따라한다는 게 보통 어려운 게 아님.

 

일반적인 수준에서는 미래 성장세는 전혀 고려하지 않고, 현재 저평가 된 종목만 찾아서 매수 후 존버하는, 상대적으로 단순한 벤저민 그레이엄의 투자법만 따라할 수 있어도 나쁘지 않다는 것을 깨닫게 됨.

벤저민 그레이엄의 투자법조차도 해 보면 그리 쉽지 않음.

안전 마진이 충분하다고 생각한 저평가 종목도 시장이 부진하면 바닥을 뚫고 지하로 내리꽂는 경우가 흔함.

염가 종목은 매수 후 가격이 내재가치와 완전히 따로 놀면서 몇 년씩 저평가 상태가 지속되는 경우가 흔함.

가끔씩 찾아오는 주식 시장의 크나큰 변동성은 멘붕을 초래해서 인내심의 한계를 시험함.

거기다 주식 이외의 다른 자산군이 폭풍같은 상승세를 보여주면 지지부진한 저평가 주식 종목을 들고 버틴다는 것은 결코 쉽지 않음.

그래서, 일반인은 여러 자산군에 분산 투자하되, 주식 포지션에 대해서만 '가치 투자'를 적용하는 하는 정도가 적절한 것 같음.

 

'가치 투자'가 얼마나 고통스럽고 힘든지, 솔직하게 인정하는 투자 전문가는 1명 밖에 못 봤음.

전체 투자자의 5%만 가치 투자 방식을 지속하는 데는 다 이유가 있음.

 

https://ghts.tistory.com/136

 

가치투자는 옳다. 장-마리 에베이야르

가치 투자가 얼마나 고통스럽고 힘든 지 솔직하게 인정하는 거의 유일한 책.최준철, 홍진채 같은 유명 가치투자자의 책 소개 영상을 보고 흥미가 생겨서 읽어봤는 데, 내용이 굉장히 독특하다. 

ghts.tistory.com

 

어느 정도 시드 머니가 있고, 소비 성향을 적정 수준에서 제한한다면, 방어적인 분산 투자법의 평균적인 수익율만으로도 비참한 노후에서 벗어날 수 있는 데, 다들 거기에 만족하지 못하고, 빨리 부자가 되고 싶어서 불나방처럼 공격적인 투자를 시도하다 보니, 일반적인 개미 투자자 90%가 5년 내로 투자금을 다 날려먹는 통계가 나오는 것 같음.

 

결론>

뛰어봤자 부처님 손바닥 안이던가?

벤저민 그레이엄 옹의 '현명한 투자자'에서 나오는 방어적 투자자 부류에서 벗어나기 정말 힘들다.

누구나 시장의 변동성을 겪고 멘붕에 빠지기 전까지는 그럴싸한 계획을 갖고 있다.

 

유튜브 채널 추천. '메이킹 알파'

투자 이야기 2024. 10. 3. 17:44 Posted by UnHa Kim

유튜브는 많은 정보를 제공해 주지만, 반대로 노이즈의 홍수로 인해서 판단력을 저하시키는 부작용도 있다.

 

그래서, 유튜브에서는 좋은 정보를 찾는 것보다 노이즈를 거르는 게 더 중요하다고 생각한다.

 

그럼에도 불구하고, '메이킹 알파'은 (걸러야하만 하는 또 다른 노이즈가 아닌) 추천할만한 도움이 되는 채널 같다.

 

https://www.youtube.com/@makingalpha/videos

 

메이킹알파

"우리네 삶과 투자에 알파의 가치를 더한다." 오역 제보와 영상 추천은 커뮤니티 란에 댓글로 남겨주세요.

www.youtube.com

 

영상을 보니 조회수를 위한 자극적인 낚시질 제목으로 가득찬 일반 채널과 달리, 채널 개설자 본인이 인상 깊었던 영상만 골라서 한글 해석을 붙여서 업로드한 듯 하다.

 

시간날 때 한 번씩 들러서 투자에 대한 생각을 정리하는 데 많은 도움이 될 것 같다.

'투자 이야기' 카테고리의 다른 글

겸손 - 하워드 막스  (0) 2025.02.19
주린이가 몇 년간 투자해 본 소감.  (6) 2025.02.14
퀀트 전략의 부진.  (0) 2024.05.11
레버리지의 무서움  (0) 2024.01.31
벤저민 그레이엄의 금(과 인플레이션)  (2) 2023.12.10

R언어 데이터 프레임으로 필터, 정렬, 랭킹, 계산 결과값 칼럼 추가, 조인등 기본 사용법 예제를 메모해 둔다.

 

코드 가독성을 높이기 위해서 dplyr 패키지를 사용한다.

# 경고 메세지 없이 dplyr 패키지 불러오기
library(dplyr, warn.conflicts = FALSE)

 

필터링

필터된_PER <- filter(PER데이터, PER > 0)

 

정렬 

정렬된_PER <- arrange(필터된_PER, PER)

 

순위값 칼럼 'PER랭킹' 추가

정렬된_PER <- mutate(정렬된_PER, PER랭킹 = rank(정렬된_PER$PER))

 

 

조인 (데이터 프레임 합치기)

전체_데이터 <- inner_join(정렬된_PER,정렬된_ROA,by='회사명')

 

이 모든 것을 파이프로 합치기

library(dplyr, warn.conflicts = FALSE)
library(readxl)

파일_경로 <- r"(엑셀파일명.xls)" # raw 문자열 r"(...)"

PER_데이터 <- read_excel(파일_경로, sheet = "PER") |>
    filter(PER > 0) |>
    mutate(PER랭킹 = rank(PER)) |>
    arrange(PER랭킹)
    
ROA_데이터 <- read_excel(파일_경로, sheet = "ROA") |>
    rename(ROA = 'ROA(영업이익)(%)') |>
    filter(!is.na(ROA)) |>
    mutate(ROA랭킹 = rank(-ROA)) |>
    arrange(ROA랭킹)
    
전체_데이터 <- inner_join(PER_데이터,ROA_데이터,by='회사명') |>
    mutate(종합_랭킹 = rank(PER랭킹 + ROA랭킹)) |>
    arrange(종합_랭킹)
    
print(전체_데이터)

 

R언어 4.0부터 파이프 기호가 '%>%'에서 '|>'로 바뀌었다.

호환성을 위해서  예전 기호 '%>%'도 여전히 지원되지만, 새로운 파이프 기호 '|>'가 가독성이 더 좋아보인다.

 

파이썬 pandas, R언어 dplyr, Julia 데이터 프레임을 비교 검토한 후, 코드 가독성 면에서 R언어 dplyr패키지가 가장 우수하다고 생각된다.

 

'데이터 분석' 카테고리의 다른 글

R언어 데이터 프레임 사용법 예제 1.  (0) 2024.05.30
R언어 절사 평균 mean trim  (0) 2023.06.28
R언어 무료 IDE  (0) 2023.06.28
무료 R언어 강의 영상  (0) 2023.06.26
윈저화 평균 (winsorized mean)  (0) 2023.04.28

오랜만에 다시 R언어를 공부한 스터디 메모이다.

 

R언어는 dplyr 패키지를 이용하면 코드 가독성이 좋아진다.

# 경고 메세지 없이 dplyr 패키지 불러오기
library(dplyr, warn.conflicts = FALSE)

 

데이터 프레임의 값에 액세스 하는 방법.

# 시리즈_ex1 생성
시리즈_ex1 <- c(100, 500, 150)
names(시리즈_ex1) <- c('카카오', '삼성전자', '현대차')

# df_ex1 생성
df_ex1 <- data.frame(가격=c(100, 500, 150), PER=c(0.5, 1.2, 0.2), ROA=c(1.01, 3.1, 0.97), row.names=c('카카오', '삼성전자', '현대차'))

# 출력
print(df_ex1$가격)
print(df_ex1['삼성전자', '가격'])
print(df_ex1['카카오', ])
print(df_ex1['카카오', 'ROA'])

칼럼 전체에 액세스 할 때 '$' 기호를 사용하는 게 특이하다.

R언어 데이터 프레임의 셀에 액세스 할 때, [행, 열] 형식으로 접근한다.

파이썬 pandas의 데이터 프레임에서 셀에 액세스 할 때는 [열, 행] 형식으로 접근하는 것과 대비된다.

파이썬 pandas에서도 loc 프로퍼티를 사용하면 [행, 열] 형식으로 셀에 액세스할 수 있기는 하지만 굳이??

개인적으로 R언어가 더 편하게 느껴진다.

'데이터 분석' 카테고리의 다른 글

R언어 데이터 프레임 사용법 예제 2.  (0) 2024.05.30
R언어 절사 평균 mean trim  (0) 2023.06.28
R언어 무료 IDE  (0) 2023.06.28
무료 R언어 강의 영상  (0) 2023.06.26
윈저화 평균 (winsorized mean)  (0) 2023.04.28

퀀트 전략의 부진.

투자 이야기 2024. 5. 11. 15:11 Posted by UnHa Kim

강환국이 퀀트 투자 붐을 일으킨 이후 역설적으로 팩터를 이용한 퀀트 투자 전략이 부진을 거듭하고 있다.

 

아마도 2가지 문제가 겹친 것으로 보인다.

 

첫째, 주식 투자에 대중의 관심이 쏠리는 때는 항상 고점 부근이다.

퀀트 투자도 일종의 주식 투자 기법이며, 퀀트 투자에 대중의 관심이 쏠린다는 것은 그 자체로 주가가 고점 부근이라는 의미이기도 하다.

주가가 원래 자리를 찾아가면서 전체 시장이 부진함에 따라 퀀트 투자도 부진할 수 밖에 없다.

 

둘째, '트레이더 효과'이다.

특정 기법을 많은 사람이 쓸 수록 해당 기법의 수익성이 떨어지는 현상을 의미한다.

 

이러한 '트레이더 효과'에 대해서 좀 더 자세히 언급하고자 한다.

 

우선, 워렌 버핏의 스승인 '벤저민 그레이엄'이 '현명한 투자자'에서 언급한 관련 내용을 인용해 본다.

어떤 이론이 과거 통계와 그럴듯하게 맞아떨어지거나 장기간 좋은 성과를 내면, 추종자가 증가하면서 주목받게 된다. 그러나 추종자가 증가할수록, 이론의 신뢰도는 감소하는 경향이 있다. 이유는 두 가지이다. 첫째, 시간이 흐르면서 이론과 맞지 않는 새로운 변수가 등장한다. 둘째, 주식시장에서 인기 높은 이론은 시장 참여자들의 행동에 영향을 미치게 되므로, 결국 수익 기회가 사라지게 된다.

 

그 사례로 1930년대에 유행한 '다우 이론'과 1950년대에 유행한 '공식에 의한 투자'의 사례를 들고 있다.

둘 다 정량적인 기법이어서 누구나 쉽게 따라할 수 있는 기법이었다.

 

주식 투자만 이런 것이 아니라, 원자재 투자에서도 비슷한 현상이 발생한다.

'터틀의 방식'에서 언급된 '트레이더 효과'에 대한 설명을 인용해 본다.

 

트레이더의 트레이딩 행동 자체가 애초에 트레이딩이 성공할 것으로 기대하게 만들었던 시장 조건을 변화시키는 것이다. 나는 이를 트레이더 효과라고 부른다. 어떤 일이나 현상이 꾸준히 반복되어 나타나면 몇몇 시장 참여자들이 그와 같은 현상에 주목하게 된다. 마찬가지로 최근 몇 년간 꾸준히 좋은 성과를 낸 트레이딩 전략은 수많은 트레이더의 눈에 띄게 마련이다. 하지만 너무 많은 트레이더들이 이 전략을 사용하게 되면 이 전략도 예전만큼의 성과를 내기 어려워진다.

 

그리고, 미국에서 퀀트 투자 붐이 일어난 후 장기간 부진했던 사례가 있다.

1990년대에 '제임스 오쇼너시'는 'What works on Wall Street'(번역서 '월가의 퀀트 투자 바이블')을 펴내며 미국에서 퀀트 투자 붐을 일으켰으며, 대중의 폭발적 관심에 힘입어 대규모 자금을 끌어모아서 독자 퀀트 펀드도 출시했지만, 6년간 부진을 거듭하다가 대형 투자은행에 흡수합병 되었다.

이게 꽤나 유명한 사건이어서 워렌 버핏은 버크셔 해서웨이 주주총회 발언 때, 주식 투자는 방정식으로 표현할 수 없다고 말하며 '제임스 오쇼너시' 사례를 언급할 정도였다.

 

그래서, 퀀트 투자는 완전히 망했는가?

'제임스 오쇼너시'가 포기하고 펀드를 팔아버린 직후 퀀트 전략은 엄청난 수익율을 내면서 부활했다.

 

이것으로 알 수 있는 점은 강환국이 유행시킨 퀀트 투자 기법은 대중적인 유행이 지나간 후, 대부분의 추종자들이 포기하고 다른 투자 방법론을 찾아떠난 이후에야 부활할 가능성이 있다.

특히, 거래량이 적고 시총이 작은 소형주 전략의 경우 이러한 부진이 두드러 질 수 있다.

 

그렇다면, 투자를 그만 두고 은행에 예금이나 맡길 것인가?

한국인의 평균 기대 수명은 여전히 길고, 한국에서 노동으로 높은 소득을 올릴 수 있는 연령대는 여전히 제한적이며, 우리는 노동 소득 없이 장기간 생존할 수 있는 방법을 찾아야 한다는 사실에는 변함없다.

돈이 많다면서 상가를 매입해서 임대하는 것도 가능하겠지만 이것은 초기 투자 비용이 아주 크니까, 대부분의 경우 소액으로 투자 가능한 금융 투자 이외에는 딱히 대안이 없을 것이다.

주식 시장이 한국에만 있는 것도 아니고, 자동화 시킬 수 있는 정량적 투자 전략이 팩터 기법만 있는 것도 아니고, 투자 자산군이 주식만 있는 것도 아니다.

한국 주식에 투자하는 팩터에 기반한 주식 퀀트 전략이 부진해도 여전히 투자할 만한 금융 자산과 투자 기법은 많다.

그리고, 지금 당장은 한국 주식 퀀트 전략이 부진해서 비중을 축소하더라도 시간이 지난 후 수익율이 되살아날 때 다시 쓰면 된다.

 

90년간 수익율을 유지해온 NCAV 전략도 사용자들이 부진한 기간을 버티지 못하고 나가떨어졌기 때문에 지금껏 수익율을 유지하고 있을 가능성이 높다.

부진이 얼마나 오래 지속될 지 알 수 없는 전략을 장기간  유지한다는 것은 아무나 할 수 없다.

책에서 퀀트 투자에서 있어서 가장 중요한 것은 인내심과 일관성이라고 그렇게나 강조했던 '제임스 오쇼너시' 본인도 6년만에 포기해 버렸다.

 

그렇기에 '윌터 슐로스' 같은 사람이 대단한 것이다.

'월터 슐로스'는 대학도 나오지 않았고, '벤저민 그레이엄'의 강의를 청강했던 이력만으로도 펀드 매니저로서 CAGR 18~19%를 기록했는 데, 아주 단순한 전략만을 쓰면서 수십 년간 일관되게 유지했다고 알려져 있다.

이건 말로는 쉬운 데 실제로는 실행하기 매우 어렵다.

이렇게 남들이 따라하기 어려운 차별점이 있어야 성공할 수 있다.

그런데, 그 차별점이라는 게 특별하게 우수한 전략이 아닐 경우도 많다.

 

비교 경쟁 우위가 '남보다 뛰어난 전략'이 아니라 '남들도 다 아는 단순한 전략을 오랫동안 일관되게 유지할 수 있는 인내심'일 수도 있다는 말을 벤저민 그레이엄이 '현명한 투자자' 서문에서 언급한 표현을 그대로 인용하면, 

지식이 다소 부족하더라도 투자 기질을 갖춘 '평범한 사람들'이 돈을 훨씬 더 벌고 유지한 사례가 많다.

지식보다 기질이 중요하다는 말, 투자는 간단하지만 쉽지 않다는 말 모두 비슷비슷한 내용인 것 같다.

 

이러한 투자의 어려움을 경감시켜주는 것은 역시나 분산인 것 같다.

물론, 분산을 하면 기대 수익율은 낮아진다.

그러나, 특정 전략이 부진해도 다른 전략에서 벌충을 하면 심리적으로 일관성을 유지하는 데 많은 도움이 된다.

어쨌거나, 중도 포기하는 것보다는 상대적으로 낮은 수익율이라도 꾸준히 버티면서 (작더라도) 수익을 얻는 것이 유리하다.

 

멘탈이 아주 강해서 버틸 수만 있다면 장기 기대 수익율이 가장 높은 전략에 집중 투자하는 게 더 좋겠지만, 그렇지 않은 대부분의 일반인의 경우 분산 투자가 투자를 지속하는 데 도움을 줘서 장기적으로는 더 유리할 것이다.

 

결론 : 한국 주식 시장에서의 퀀트 개별 종목 투자 기법이 부진하다면 다른 자산군에 투자하거나, 다른 전략을 쓰면 된다. 존버가 승리한다.