Electronic Engineering/Python data analysis 14

Python Data 분석 : SK하이닉스 일중강도율, 반전 매매기법

SK 하이닉스의 2021년 10월4일부터 현재까지의 주가를 이용해 일중강도율과 반전매매기법이라는 공식 사용하여 그래프로 표기 import matplotlib.pyplot as plt from Investar import Analyzer mk = Analyzer.MarketDB() df = mk.get_daily_price('SK하이닉스', '2021-10-04') df['MA20'] = df['close'].rolling(window=20).mean() #평균 df['stddev']=df['close'].rolling(window=20).std() #표준편차 df['upper']=df['MA20'] + (df['stddev']*2) #볼린저밴드 공식 df['lower']=df['MA20'] -(df['s..

Python Data 분석 : 볼린저 밴드

삼성전자 주가에 대해 2021년 10월 부터 현재까지의 볼린저 밴드를 나타냄. 코드를 변경해가면서 각종 그래프를 출력하였고 아래는 최종 코드. import matplotlib.pyplot as plt from Investar import Analyzer mk = Analyzer.MarketDB() df = mk.get_daily_price('삼성전자', '2021-10-04') df['MA20'] = df['close'].rolling(window=20).mean() #평균 df['stddev']=df['close'].rolling(window=20).std() #표준편차 df['upper']=df['MA20'] + (df['stddev']*2) #볼린저밴드 공식 df['lower']=df['MA20']..

Python Data 분석 : MariaDB를 활용한 시세 조회

MariaDB 사용 도중 오류가 났던 이유는 해당 DBUpdater.py에서 비밀번호를 수정을 안해주어서 발생한 문제. 이번에 4개 종목으로 몬테카를로 시뮬레이션 중 NAVER 주가가 올바르게 구해지지 않았음. 따라서 3개 종목으로 구현.. import numpy as np import pandas as pd import matplotlib.pyplot as plt from Investar import Analyzer mk = Analyzer.MarketDB() stocks = ['삼성전자', 'SK하이닉스', '현대자동차'] df = pd.DataFrame() for s in stocks: df[s] = mk.get_daily_price(s, '2018-04-23', '2022-07-25')['clos..

Python Data 분석 : yfinance와 네이버금융 데이터로 시세조회하기(실패)

코드를 작동시켰을때 yfinance를 사용하여 그래프를 나타낸 결과는 올바르게 나왔지만 네이버 금융 데이터로 시세조회하기에는 실패하였다. 원인은 아래 사진과 같으며 해결하기 위해 idle로 실행하였지만 이 또한 실패하였다. from pandas_datareader import data as pdr import yfinance as yf yf.pdr_override() import matplotlib.pyplot as plt from Investar import Analyzer df = pdr.get_data_yahoo('005930.KS', '2017-01-01') #야후파이낸스 사용하여 삼성전자 주가 추출 plt.figure(figsize=(9,6)) #그래프사이즈 plt.subplot(2,1,1) #..

Python Data 분석 : 웹 스크레이핑

1. read_html()로 파일읽기 import pandas as pd krx_list = pd.read_html('C:/Users/hards/Downloads/상장법인목록.xls') krx_list[0].종목코드 = krx_list[0].종목코드.map('{:06d}'.format) #종목코드 0생략들을 커버함 {:06d]는 여섯자리 숫자형식으로 표현 print(krx_list[0]) #리스트의 첫번째 원소 출력 print('\n') df = pd.read_html('https://kind.krx.co.kr/corpgeneral/corpList.do?method=download&SearchType=13')[0] #URL을 이요해 인터넷 상 파일 읽기 뒤의 [0]은 결과를 데이터프레임으로 받음 df['..

Python Data 분석 : 미국국채와 코스피의 회귀분석

앞서 공부한 내용을 바탕으로 yfinance를 통해 미국국채의 Data와 코스피 Data를 추출하여 코스피 기대치 함수를 선형회귀분석을 통해 구하고, 각 그래프를 맷플롯립을 통해 구현. import pandas as pd import yfinance as yf from scipy import stats import matplotlib.pylab as plt from pandas_datareader import data as pdr yf.pdr_override() kospi = pdr.get_data_yahoo('^KS11', '2000-01-04') #코스피 지수 추출 tlt = pdr.get_data_yahoo('TLT', '2002-07-30') #미국국채 데이터 추출 df = pd.DataFrame..

Python Data 분석 : 상관계수에 따른 리스크 완화

상관계수의 정의와 상관계수를 직접 구해보고 결정계수까지 구함. 다우존스 지수와 코스피의 회귀분석을 진행하여 그래프형태로 코스피의 기대치 직선과 같이 나타냄 import pandas as pd from pandas_datareader import data as pdr import yfinance as yf from scipy import stats import matplotlib.pylab as plt yf.pdr_override() dow = pdr.get_data_yahoo('^DJI', '2000-01-04') #다우존스 데이터 추출 kospi = pdr.get_data_yahoo('^KS11', '2000-01-04') #코스피 데이터 추출 df = pd.DataFrame({'X': dow['Clo..

Python Data 분석 : 선형 회귀분석과 상관관계

회귀분석을 통해 연속적인 데이터 Y와 해당 Y의 원인이 되는 X간의 관계를 찾아 선형회귀모델 식을 구해 임의의 X값이 주어질 경우 Y를 예측하는 과정을 Scipy와 Pandas를 사용하여 분석 import pandas as pd from pandas_datareader import data as pdr import yfinance as yf yf.pdr_override() dow = pdr.get_data_yahoo('^DJI', '2000-01-04') #다우존스 데이터 추출 kospi = pdr.get_data_yahoo('^KS11', '2000-01-04') #코스피 데이터 추출 import matplotlib.pyplot as plt plt.figure(figsize=(9, 5)) #그래프 크기..

Python Data 분석 : Kospi MDD

MDD : 특정기간에 발생한 최고점에서 최저점까지의 가장 큰 손실 from pandas_datareader import data as pdr import yfinance as yf yf.pdr_override() import matplotlib.pyplot as plt kospi = pdr.get_data_yahoo('^KS11', '2004-01-04') #코스피지수 데이터 다운로드 window = 252 #윈도우 크기 : 1년동안의 개장일을 252일로 어림 peak = kospi['Adj Close'].rolling(window, min_periods=1).max() #종가칼럼에서 1년 기간단위로 최고치 peak구함 drawdown = kospi['Adj Close']/peak - 1.0 #peak대..

Python Data 분석 : yfinance를 이용한 주식수익률 비교

Pandas와 yfinance를 이용하여 주식수익률을 공부하던 도중 새로운 회사로 직접 수익률을 비교하고 싶었고.. 친구의 도움을 받아 얻어낸 두 종목! 이 두 종목을 사용하여 공부한것을 Review하기로 하였고 스스로 해보려고 노력했지만.. 힐끔힐끔 만들어놓은 코드를 보게 되는것은 어쩔수없나보다. from pandas_datareader import data as pdr import yfinance as yf yf.pdr_override() Hansol = pdr.get_data_yahoo('025750.KS', start = '2022-01-01') #한솔홈데코의 주가 검색 Hanjin = pdr.get_data_yahoo('180640.KS', start = '2022-01-01') #한진칼의 주가..