주식을 하다보면, 특정 패턴이 보일 때가 있습니다. 예를 들어, 주식의 최저값은 평균적으로 몇 시에 몰려있다던지, 월요일의 평균 주식값은 금요일의 평균 주식값보다 높다던지 등이 있을 것 입니다. (이것은 급조한 예시일 뿐 실제 혹은 제 의견과 아무 관련이 없습니다.) 이러한 내가 생각한, 느끼는, 발견한 패턴을 “예감”이라고 부르겠습니다. 누군가의 예감은 대체적으로 맞을 수도, 전혀 잘 못 생각하고 있을 수도 있습니다. 자칭 고수라고 생각하는 사람의 예감은 초보자의 예감보다 안 좋을 수도 있습니다.
간단한 예감이라면 직접 데이터를 비교해서 확인해볼 수 있겠지만 복잡한 예감은 사실상 검증하기 힘들기도 합니다. 또한, 예감의 일반화를 하기 위해 더 많은 주가를 비교하는 것은 피로도가 큰 작업입니다.
저는 주가의 패턴과 추세를 분석하여 미래의 가격 변동을 예측하는 방법인 기술적분석에 한하여 내가 생각한 예감이 얼마나 정확한지 확인해볼 수 있는 프로그램을 개발하고자 합니다. GPT를 활용해 쉽게 말로 뱉고 이것을 점수화해서 알려주는 기능을 수행할 것 입니다.
주식 가격과 거래량에 대한 데이터를 수집하고 데이터베이스에 저장합니다.
수집된 데이터를 대상으로 SQL 쿼리를 실행하여 분석 결과를 확인합니다.
쿼리를 API로 구현하여 외부에서 요청을 보내고 결과를 받아올 수 있도록 합니다.
사용자가 데이터를 입력하고 결과를 확인할 수 있는 기본적인 사용자 인터페이스를 설계합니다.
미리 데이터베이스의 정보를 알고있는 GPT를 활용해서, 사용자 입력의 자연어를 처리하고 쿼리를 생성합니다.
제가 생각한 프로그램의 주 기능은 아래와 같습니다.
1. 누군가 아래와 같은 생각을 합니다.
“주식 거래가 많이 되는 상위 기업들은 대부분 금요일에 돈이 많이 빠져나가서 값이 낮은 편이야. 사람들이 주중에 손을 쓸 수 없기 때문에 불안해서 많이 빼기 때문이지. 대신 월요일 아침에는 투자를 많이 하는편 이기 때문에 주가가 높을 것 같아.”
2. 이러한 생각은 조금 더 간단한 말로 표현된 식으로 변경할 수 있습니다.
나스닥 통화거래량이 많은 상위 10개 기업을 기준으로 금요일의 평균 주가와, 월요일의 아침의 주가의 평균 차이를 구해줘.
3. 위의 표현식을 쿼리로 표현할 수 있습니다.
WITH top_companies AS (
SELECT company
FROM stock_prices
WHERE date = CURRENT_DATE - INTERVAL '1 DAY'
ORDER BY volume DESC
LIMIT 10
),
friday_prices AS (
SELECT company, AVG(price) AS avg_friday_price
FROM stock_prices
WHERE day_of_week = 'Friday'
AND company IN (SELECT company FROM top_companies)
GROUP BY company
),
monday_morning_prices AS (
SELECT company, AVG(price) AS avg_monday_morning_price
FROM stock_prices
WHERE day_of_week = 'Monday'
AND time_of_day = 'Morning'
AND company IN (SELECT company FROM top_companies)
GROUP BY company
)
SELECT t.company,
f.avg_friday_price,
m.avg_monday_morning_price,
m.avg_monday_morning_price - f.avg_friday_price AS price_difference
FROM top_companies t
JOIN friday_prices f ON t.company = f.company
JOIN monday_morning_prices m ON t.company = m.company;
복잡해 보이지만, 쿼리는 아래 네 개의 구분단계를 한번에 수행하는 쿼리 입니다.
4. 쿼리를 수행하고 결과를 숫자로 보며 내가 생각한 예감이 맞는지 확인할 수 있습니다.
이 프로젝트는 비 전문가 주식 투자자들이 자신의 예감을 검증하고, 데이터 기반의 인사이트를 얻어 더 나은 투자 결정을 내리는 데 기여하는 것을 목표로 합니다. 기술적 분석을 통해 신뢰성 있는 투자 인사이트를 제공함으로써, 투자자들은 감에 의존하는 대신 데이터를 기반으로 한 합리적인 결정을 내릴 수 있습니다. 또한, 다양한 주식과 데이터를 분석하여 주가 패턴에 대한 일반화된 인사이트를 도출함으로써 투자자들이 보다 넓은 시각에서 시장을 이해할 수 있도록 돕습니다. 지속적인 데이터 분석을 통해 패턴 인식 능력을 향상시키고, 이를 바탕으로 새로운 투자 기회를 발견할 수 있도록 지원합니다. 이를 통해 투자자들은 보다 과학적이고 체계적인 접근 방식을 통해 투자 성과를 극대화할 수 있을 것입니다.
프로젝트의 주제가 얼마나 의미가 있고, 효용성이 있는지 잘 모르겠습니다. 그냥 야속한 내 주식들을 보면서 '이런 게 있었으면 좋겠다'라는 생각을 해봤습니다. 언제 완성될지 잘 모르겠지만, 토이 프로젝트로 천천히, 틈틈이 해보겠습니다.