[예감] 프로젝트 개요

Soonyoung·2024년 6월 28일
1

예감

목록 보기
1/2
post-thumbnail

프로젝트 예감 - Insightock

개요

주식을 하다보면, 특정 패턴이 보일 때가 있습니다. 예를 들어, 주식의 최저값은 평균적으로 몇 시에 몰려있다던지, 월요일의 평균 주식값은 금요일의 평균 주식값보다 높다던지 등이 있을 것 입니다. (이것은 급조한 예시일 뿐 실제 혹은 제 의견과 아무 관련이 없습니다.) 이러한 내가 생각한, 느끼는, 발견한 패턴을 “예감”이라고 부르겠습니다. 누군가의 예감은 대체적으로 맞을 수도, 전혀 잘 못 생각하고 있을 수도 있습니다. 자칭 고수라고 생각하는 사람의 예감은 초보자의 예감보다 안 좋을 수도 있습니다.

간단한 예감이라면 직접 데이터를 비교해서 확인해볼 수 있겠지만 복잡한 예감은 사실상 검증하기 힘들기도 합니다. 또한, 예감의 일반화를 하기 위해 더 많은 주가를 비교하는 것은 피로도가 큰 작업입니다.

저는 주가의 패턴과 추세를 분석하여 미래의 가격 변동을 예측하는 방법인 기술적분석에 한하여 내가 생각한 예감이 얼마나 정확한지 확인해볼 수 있는 프로그램을 개발하고자 합니다. GPT를 활용해 쉽게 말로 뱉고 이것을 점수화해서 알려주는 기능을 수행할 것 입니다.

주요 기능

1. 예감 입력 및 변환

  • 사용자 친화적인 입력: 주식 투자자들은 자신이 생각한 주가 패턴에 대한 예감을 자연어로 쉽게 입력할 수 있습니다. 예를 들어, "월요일 아침의 주가가 금요일보다 높을 것 같다"와 같은 문장을 입력하면 됩니다.
  • 자동 쿼리 변환: 입력된 자연어 예감은 GPT를 활용하여 자동으로 SQL 쿼리로 변환됩니다. 이를 통해 사용자는 복잡한 쿼리 작성법을 몰라도 자신의 예감을 데이터베이스에 적용할 수 있습니다.

2. 데이터 분석

  • 실시간 데이터 처리: 변환된 SQL 쿼리는 과거부터 최신까지의 폭 넓은 주식 데이터베이스를 토대로 데이터베이스에서 실행됩니다.
  • 정밀한 분석 결과 제공: 예감에 따라 금요일 평균 주가와 월요일 아침 평균 주가의 차이와 같은 특정 패턴을 분석합니다. 이를 통해 사용자는 자신의 예감이 얼마나 정확한지 확인할 수 있습니다.

3. 결과 시각화 및 점수화

  • 예감의 정확성 점수화: 예감의 정확성을 점수화하여 사용자가 자신의 예감이 실제 데이터와 얼마나 일치하는지 알 수 있습니다. 이 점수는 투자 전략의 개선에 유용한 정보를 제공합니다.
  • 시각적 데이터 표현: 분석 결과는 차트와 그래프 등의 시각적 도구를 활용하여 쉽게 이해할 수 있도록 제공됩니다. 이를 통해 데이터의 흐름과 패턴을 직관적으로 파악할 수 있습니다. (확장 가능한 기능)

4. 패턴 검증 및 일반화

  • 다양한 조건에서의 검증: 다양한 주식과 기간에 대한 데이터를 비교 분석하여 예감의 일반화를 시도합니다. 이를 통해 특정 조건에서만 맞는 예감인지, 일반적으로 적용 가능한지 평가합니다.
  • 투자 전략 최적화: 예감 검증 결과를 바탕으로 사용자들은 자신의 투자 전략을 최적화할 수 있습니다. 반복적인 패턴 인식을 통해 더 나은 투자 결정을 내릴 수 있습니다.

개발 계획

데이터 확보하기

주식 가격과 거래량에 대한 데이터를 수집하고 데이터베이스에 저장합니다.

쿼리 확인

수집된 데이터를 대상으로 SQL 쿼리를 실행하여 분석 결과를 확인합니다.

API 형태로 쿼리를 처리

쿼리를 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;

복잡해 보이지만, 쿼리는 아래 네 개의 구분단계를 한번에 수행하는 쿼리 입니다.

  1. 최신 거래일의 거래량이 많은 상위 10개 기업을 선택합니다.
  2. 위 10개 기업에 대해 금요일의 평균 주가를 계산합니다.
  3. 상위 10개 기업에 대해 월요일 오전의 평균 주가를 계산합니다.
  4. 각 회사의 금요일 평균 주가와 월요일 아침 평균 주가, 그리고 그 차이를 출력합니다.

4. 쿼리를 수행하고 결과를 숫자로 보며 내가 생각한 예감이 맞는지 확인할 수 있습니다.

목표

이 프로젝트는 비 전문가 주식 투자자들이 자신의 예감을 검증하고, 데이터 기반의 인사이트를 얻어 더 나은 투자 결정을 내리는 데 기여하는 것을 목표로 합니다. 기술적 분석을 통해 신뢰성 있는 투자 인사이트를 제공함으로써, 투자자들은 감에 의존하는 대신 데이터를 기반으로 한 합리적인 결정을 내릴 수 있습니다. 또한, 다양한 주식과 데이터를 분석하여 주가 패턴에 대한 일반화된 인사이트를 도출함으로써 투자자들이 보다 넓은 시각에서 시장을 이해할 수 있도록 돕습니다. 지속적인 데이터 분석을 통해 패턴 인식 능력을 향상시키고, 이를 바탕으로 새로운 투자 기회를 발견할 수 있도록 지원합니다. 이를 통해 투자자들은 보다 과학적이고 체계적인 접근 방식을 통해 투자 성과를 극대화할 수 있을 것입니다.

한 마디

프로젝트의 주제가 얼마나 의미가 있고, 효용성이 있는지 잘 모르겠습니다. 그냥 야속한 내 주식들을 보면서 '이런 게 있었으면 좋겠다'라는 생각을 해봤습니다. 언제 완성될지 잘 모르겠지만, 토이 프로젝트로 천천히, 틈틈이 해보겠습니다.

0개의 댓글