스터디 포스트 >  파이썬으로 나만의 투자 전략 세우기

객체지향 프로그래밍 : Finanacial Instrument Class

박철종 멘토
퀀트 개발자가 되기 위해 노력하는 박철종입니다.

파이썬으로 나만의 투자 전략 세우기 - 2주차

 
💡
객체지향 프로그래밍 : Finanacial Instrument Class
 
 
  1. 강의소개
  1. OOP 개요 및 클래스의 예
    1. 단어의 정의보단 실습을 통해 OOP를 익히는 것을 추천
      아래의 그림에서 클래스와 객체의 관계를 뽑는다면?
      notion image
      notion image
      객체지향에 대한 설명으로 적절한 그림인가?
      notion image
      이 세상 모든 것들은 객체이고 군집화 시키고 싶은 객체들의 특징/속성/기능 등을 뽑아놓은 것이 클래스다.
  1. 필요한 패키지
    1. pip install pyupbit
  1. 금융 분석 클래스의 작동 모습(파트1)
  1. 금융 분석 클래스의 작동 모습(파트2)
  1. 특수 메소드 __init__()
    1. dunder init(double underscore init)이라 불림
      객체 생성시 속성 초기화 함수
      class CoinInstrument():
        def __init__(self, ticker, to=None, count=200, interval='day', period=0.5):
          self.ticker = ticker
          self.interval = interval
          self.count = count
          self.to = to
          self.period = period
      
      CoinInstrument('KRW-BTC')
  1. get_data() 메소드
    1. load_data() 메소드로 변경
      def load_data(self):
          self._data = pyupbit.get_ohlcv(self.ticker, self.interval, self.count, self.to, self.period)
  1. log_returns() 메소드
    1. def log_returns(self):
          self._data["log_returns"] = np.log(self._data.close/self._data.close.shift(1))
  1. 문자열 표현 및 특수 메소드 __repr__()
    1. repr = representation의 약어
      객체를 이해할 수 있는 평문으로 표현

섹션4 : 기술적 분석 - 이론 및 이용 사례

발표자 : 김동억
 
  1. 섹션 개요
  1. 기술적 분석 vs 기본석 분석
    1. notion image
  1. 기술적 분석과 효율적 시장 가설(EMH)
    1. notion image
  1. 기술적 분석 - 적용 및 이용 사례
    1. 트레이딩 전략을 벡테스팅하며 성과와 리스크를 면밀히 모니터링
      notion image
       
  1. 통화(외환) 및 트레이딩 소개
 
 

퀀트 투자 서론

발표자 : 박철종

퀀트 투자란?

  • 수치화한 데이터를 기반으로 객관적으로 투자하는 방법
  • 퀀트투자를 함으로써 많은 편향으로 벗어날 수 있다.
 

투자에서 자주 나타나는 편향

  • 과잉확신 편향 - 자신의 능력을 높이 쳐서 과도한 확신을 가지는 편향
  • 손실 회피 - 이익을 보는 것보다 손실을 입는 것을 극도로 싫어하게 되어 이익을 길게 못 가져가는 편향
  • 확증 편향 - 자신의 주장에 맞는 정보만 가져가고 안 맞는 정보는 배척하는 편향
  • 군집 행동 - 자신이 맞는 행동을 하려고 해도 집단이 맞지 않는 행동을 하면 집단의 행동으로 하는 편향
  • 선택적 기억 - 자신이 하고 싶은 기억만 하는 편향
  • 매몰비용 오류 - 판단이 잘못되어도 이미 지불한 비용이 상당하면 그 판단을 고치지 못하는 것
 

데이터 클리닝 - 잘못된 데이터(누락 or 오류) 찾기

  • 막대 그래프나 산점도 등을 이용
  • 대표값(평균, 최빈값, 최대, 최소) 등을 이용
 

데이터 클리닝 - 잘못된 데이터 고치기

  • 과거의 패턴을 따서 붙이기
  • 퀀트 모델을 따로 짜서 잘못된 데이터를 원래 데이터로 교체
  • 대표값 활용하기
 

데이터의 종류

  • 자산 가격 데이터 : 주가 or 보조지표 등
  • 자산 거래량 데이터 : 거래량이나 호가창의 정보
  • 거시경제 데이터 : GDP나 고용 지표 등
  • 기업 재무 데이터 : 순이익, 부채비율, 영업이익 등
  • 센티먼트 데이터 : 의견들을 수치화한 데이터
  • 특정 인더스트리 데이터 : 산업에 이용되는 지표 (ex. 건설업 - 건설수주, 부동산 심리지수)
  • 대안 데이터 : 기타 모든 데이터를 가공해 수치화한 데이터
 

백테스팅이란?

  • 자신이 짠 전략을 과거 데이터에 넣어서 테스트를 돌리는 것을 백테스팅이라고 한다.
 

백테스팅으로 확인해야 할 것들

  • 수익률(평균 수익률, 누적 수익률)
  • 변동성(표준편차)
  • MDD
notion image
 

백테스팅에 치명적인 편향

notion image
  • 생존자 편향 - 시장에 죽은 기업들은 데이터가 남아 있지 않을 가능성이 높다. 따라서 백테스팅 할 때는 죽은 기업들이 반영이 되지 않고 따라서 결과는 부정확하고 오히려 더 좋게 나온다.
  • 미래 편향 - 과거 백테스팅 시점에서는 미래 벌어질 일을 모른다. 따라서 백테스팅을 돌리는 사람도 모르는 걸로 간주하고 돌려야하지만 그러지 못하는 경우가 많다.
  • 정보 염탐 편향 - 과거의 데이터에 너무 맞춰서 미래의 결과를 예측을 못하는 경우를 말한다.
 
 
 
 

 
 
본 스터디는 Udemy의 <【한글자막】 알고리즘 거래와 투자의 기술적 분석 with Python> 강의를 활용해 진행됐습니다. 강의에 대한 자세한 정보는 아래에서 확인하실 수 있습니다.
 
 
프밍 스터디는 Udemy Korea와 함께 합니다.
 
 

 
원하는 스터디가 없다면? 다른 스터디 개설 신청하기
누군가 아직 원하는 스터디를 개설하지 않았나요? 여러분이 직접 개설 신청 해 주세요!
이 포스트는
"파이썬으로 나만의 투자 전략 세우기" 스터디의 진행 결과입니다
진행중인 스터디
파이썬으로 나만의 투자 전략 세우기
파이썬을 활용해 주식 투자 전략을 짜보고 과거의 데이터로 검증을 해보는 스터디입니다.
박철종 멘토
퀀트 개발자가 되기 위해 노력하는 박철종입니다.