본문 바로가기
  • think normal
새로워지기/마흔의 생활코딩

[마흔에 파이썬] 배우는 여정

by 청춘만화 2021. 2. 18.

메인 스터디 : 책 따라 실습하기,  파이썬 증권 데이터 분석 <- 65%

 

파이썬 증권 데이터 분석

웹 스크레이핑으로 증권 데이터를 주기적으로 자동 수집, 분석, 자동 매매, 예측하는 전 과정을 파이썬으로 직접 구현한다. 그 과정에서 금융 데이터 처리 기본 라이브러리(팬더스)부터 주가 예

www.aladin.co.kr

 

 

이전엔 코딩 스터디에 대한 포스팅을 할 때 나름 튜토리얼처럼 하려고 노력했었다.

이제와 생각해보니 별로다

정보가 없는게 문제가 아니라 너무 많아서 문제인 시대가 아닌가- 

그래서 그냥 주요 키워드와 링크만 적는 것에 만족하기로 한다.

 

 

세팅

64비트-파이썬(Windows x86-64 executable installer) 다운로드 -> 파이썬 설치(*환경변수 자동추가 옵션선택)

-> cmd에서 패키지 설치(pip install matplotlib설치와 pythonexe -m pip install --upgrade pip 업뎃) *EnvironmentError이슈대응

-> 실습용 패키지 설치(목록을 파일로 저장 후 cmd에서 해당 파일 실행 = pip install -r 파일이름.txt)

-> 32비트-파이썬(Windows x86 executable installer) 다운로드 -> 설치(*환경변수 선택X) 

 

 

메인 레퍼런스

  - 파이썬-기본을갈고닦자,

  - 파이썬org(kr)

  - 프로그래머스-파이썬

 

 

서브 레퍼런스

 - 주식투자를 위한 PyQt GUI

 - 토닥토닥 파이썬

 - 증권데이터분석(실습리뷰+영상)

 - 로스카츠님 깃io

 

 

주요 키워드  

pip install ..은 python 이 아닌, 터미널에서 실행

빈 리스트,딕셔너리,튜플,셋

  - #list ls=[], #dict d={}, #tuple t=(), #set s=set()

List

  - append(), extend()

comprehension(내포)

dictionary

  - a.key(), a.values(), a.items(), a.clear(), a.get('key'), a.get('key','default comment')

  - f-string, {}, $s

set

  - 중복없음, 인덱싱이 불가능, 교/차/합집합 연산

  - 월등히 빠른 '검색(if)' 속도(for 문은 다소 느리다) *timeit(속도 테스트 LB)

Lambda

내장함수

라이브러리 = 모듈(.py파일)과 패키지(폴더)

   from 모듈/datetime import 메서드/datetime as 별명/dt
   print(dt.now())
  myPackage.moduleA.functionA()
  패키지.모듈.함수 

객체, 인스턴스, 상속

리퀘스트 python -m pip install requests

with ~ as 파일객체

SHA-256 import hashlib 

 

 

기초 수학

제곱과 제곱근(루트)

평균, 분산, 표준편차 

선형회귀모델(원인x와 연속적인결과y, 측정상의오차e 관계 1차식line으로 표현 : 

stats.linregress(df['타깃1'],df['타깃2']) )

분산, 공분산, 상관계수, 상관관계 

 

 

주요 지표 함수    

GAGR Compound Annual Growth Rates

def getGAGR(first,last,years): #복합연평균 수익률, 연복리 수익률(판매수량, 사용자 증가율)
    return (last/first)**(1/years)-1

R1 Daily percent change 일간 변동률(가격이 다른 두 주가를 비교)

R1(오늘 변동률) = (타깃.['컬럼'].shift(1) - 타깃.['컬럼'] / 타깃.['컬럼'].shift(1) ) * 100

MDD Maximum Drawdown 최대 손실 낙폭

(최저점-최고점) / 최저점

Sharp Ratio 샤프 지수 

(포트폴리오 예상 수익률 - 무위험률) / 수익률 표준 편차

볼린저 밴드  + 관련 실습 레퍼런스(클래스101-TimePercent)

상단 볼린저 밴드 ubb = 중간 볼린저 밴드 + (2 X 표준편차)
중간 볼린저 밴드 mbb  = 종가의 20일 이동평균 
하단 볼린저 밴드 lbb = 중간 볼린저 밴드 - (2 X 표준편차)

PerB (Price, Length, Mult, MaKind, [Optional]Pos) = %b  *추가 레퍼런스
   = (주가 – 하한선) / (상한선 – 하한선) = (close - lbb) / (ubb - lbb)
     * Price : 이동평균 하기 위한 기준 가격데이터(시가, 고가, 저가, 종가)
     * Length : 이동평균 기간
     * Mult : 승수
     * MaKind : 이동평균 계산방법
     * (S : 단순 이동평균, E : 지수 이동평균, W : 가중 이동평균, A : 누적 이동평균)

Bandwidth(밴드폭)
   = (상한선 – 하한선) / 중심선 = (ubb - lbb) / mbb

MFI Money Flow Index 현금흐름지표

- 종가가 아닌 중심 가격을 활용, 거래량(주가를 선행) 지표 활용

RSI relation strength index 상대적 강도 지수 

 - RS = n일간 상승폭 평균 / n일간 하락폭 평균
 - RSI = 100 - 100 / (1 + RS)

 

 

API, Library

야후 파이낸스

대한민국 기업공시채널

네이버 금융 *크롤링차단이슈대응

백트레이더 : bt.indicators.(레퍼런스)

 

 

 

Data analytics libraries

numpy enumerical python | cmd > pip install numpy | 예제

pandas | cmd > pip install pandas | describe(), Series, DafaFrame(인덱스 하나에 여러 시리즈를 합친 것), 회귀분석

SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering. In particular, these are some of the core packages | cmd > pip install scipy

html5lib  parsing HTML | cmd >pip install html5lib 

beautifulsoup4 HTML과 XML 파일로부터 데이터를 뽑아내기 위한 파이썬 라이브러리 | cmd >pip install beautifulsoup4 | 예제1 예제2

 

 

Visualization

mplfinance 

matplotlib | cmd > pip install matplotlib | 이미지그리기, 차트그리기

plotly (& 한 페이지에 plot, plotly, dash 모두 표현하기 예제, plotly 라이브러리s )

D3.js

fornt-end framework

Django - (Vitor Freitas's blog)

댓글