5화. 자동화의 시작 — 데이터로 나의 투자 습관을 시각화하기
“감으로 투자하지 말라.”
누구나 그렇게 말한다. 하지만 감정 없이 투자하는 건 생각보다 어렵다. 그래서 나는 ‘감’을 버리려 하지 않고, 데이터로 감정을 시각화하기로 했다.
프로그래머는 감정 대신 로그를 보고, 숫자 대신 패턴을 본다. 이제 주식 투자도 그렇게 바꿔보자.
🧠 투자 루틴을 데이터로 본다내가 매일 반복하던 행동을 코드로 옮겨보면 이렇다.
while True: data = get_market_data() condition = check_my_rule(data) action = decide(condition) log_result(action) visualize(data, action) 이건 단순하지만 강력한 구조다. 시장 데이터가 입력(input)이 되고, 나의 행동이 출력(output)이 되며, 그 사이의 규칙이 알고리즘이 된다.
자동화는 나 대신 판단하는 게 아니라, 나의 판단을 시스템화하는 과정이다.📦 주가 데이터를 가져오는 가장 간단한 방법 — yfinance
Python에는 yfinance라는 아주 유용한 라이브러리가 있다. 이걸로 손쉽게 주가 데이터를 불러올 수 있다.
import yfinance as yf import pandas as pd import matplotlib.pyplot as plt # 1. 종목 불러오기 (예: S&P500 ETF) ticker = yf.Ticker("SPY") # 2. 6개월 간의 가격 데이터 가져오기 data = ticker.history(period="6mo") # 3. 20일 이동평균선 추가 data["MA20"] = data["Close"].rolling(20).mean() # 4. 시각화 data[["Close", "MA20"]].plot(title="SPY Price & MA20", figsize=(10,5)) plt.show() 실행하면 이렇게 차트가 나온다.
- 파란색: 종가(Close)
- 주황색: 20일 이동평균선(MA20)
이 단순한 시각화만으로도, 내가 언제 매수했고 언제 매도했는지 감정이 아닌 **패턴으로 확인**할 수 있다.
📊 나의 투자 행동 시각화하기단순히 가격만 보는 대신, 내가 매수·매도한 시점을 시각화하면 훨씬 객관적인 분석이 가능하다.
# 예시: 매수/매도 데이터 표시 buy_dates = ["2024-06-03", "2024-07-01", "2024-08-12"] sell_dates = ["2024-09-10"] plt.figure(figsize=(10,5)) plt.plot(data.index, data["Close"], label="Price", color="lightgray") plt.plot(data.index, data["MA20"], label="MA20", color="orange") # 매수점 표시 plt.scatter(buy_dates, data.loc[buy_dates]["Close"], color="green", marker="^", label="Buy") # 매도점 표시 plt.scatter(sell_dates, data.loc[sell_dates]["Close"], color="red", marker="v", label="Sell") plt.title("My Trading Points vs Market Trend") plt.legend() plt.show() 이렇게 하면 **내 행동이 시장 흐름과 어떻게 맞물렸는지** 시각적으로 확인할 수 있다.
“감정은 기억에 남지 않는다. 그래프는 거짓말하지 않는다.”🧩 감정 로그와 가격 로그를 연결하기
이제 이전 화에서 만들었던 감정 점수를 데이터에 합쳐보자.
# 감정 로그 예시 emotion_log = pd.DataFrame({ "Date": ["2024-06-03", "2024-07-01", "2024-08-12", "2024-09-10"], "Emotion": [8, 4, 6, 7], # 감정 점수 (1~10) "Action": ["Buy", "Buy", "Buy", "Sell"] }) # 병합 merged = data.merge(emotion_log, left_index=True, right_on="Date", how="outer") # 시각화 plt.figure(figsize=(10,5)) plt.plot(data["Close"], color="gray", alpha=0.6) plt.scatter(merged["Date"], merged["Close"], c=merged["Emotion"], cmap="coolwarm", s=100) plt.colorbar(label="Emotion Level") plt.title("Emotion Log on Market Chart") plt.show() 이제 감정 점수에 따라 색이 바뀌는 그래프가 생성된다. 흥분할수록 빨갛게, 차분할수록 파랗게 표시된다. 자신의 감정과 매매의 관계를 시각적으로 확인할 수 있는 셈이다.
🔧 자동화의 목적은 ‘돈’이 아니라 ‘통제’대부분 자동화를 돈 버는 도구로 생각하지만, 진짜 목적은 감정과 반복을 제어하는 시스템화다.
매일 아침, 프로그램이 내 감정 로그와 시장 데이터를 함께 보여준다. “오늘의 RSI는 42, 당신의 감정 점수는 7. 거래를 미뤄야 합니다.” 그 한 문장만으로도 감정적 결정을 막을 수 있다.
이건 단순한 코드가 아니라, 나 자신을 훈련시키는 피드백 루프다.
자동화는 ‘생각을 멈추는 시스템’이 아니라, ‘감정을 건너뛰는 시스템’이다.🧠 정리 — 데이터를 보면 감정이 작아진다
시장은 통제할 수 없다. 하지만 나의 루틴과 감정은 데이터로 통제할 수 있다.
- yfinance → 시장의 객관적 데이터
- 로그 기록 → 나의 주관적 데이터
- 시각화 → 객관과 주관의 접점
투자란 결국 나 자신과의 싸움이 아니라, 데이터 해석력을 기르는 일이다.
📍다음 편 예고:
이제 데이터를 쌓았으니 테스트할 차례다. 다음 화에서는 “백테스트”로 나의 규칙이 실제로 통했는지 검증해본다. 투자도 결국, 테스트 주도 개발(TDD)처럼 반복과 검증의 예술이다.
'{재테크} > 주식' 카테고리의 다른 글
| 📊 프로그래머의 재테크 공부: 주식편 7화. (0) | 2025.10.28 |
|---|---|
| 📈 프로그래머의 재테크 공부: 주식편 6화. (0) | 2025.10.27 |
| 🔁 프로그래머의 재테크 공부: 주식편 4화 (0) | 2025.10.24 |
| 🧠 프로그래머의 재테크 공부: 주식편 3화 (0) | 2025.10.23 |
| 💾 프로그래머의 재테크 공부: 주식편 2화 (0) | 2025.10.22 |