금융인을 위한 파이썬 업무자동화 4주차
Google Drive: 로그인
이메일 또는 휴대전화
accounts.google.com
[라이브러리 설치 명령어 yfinance pandas-datareader finance-datareader
!pip install yfinance pandas-datareader finance-datareader
[삼성전자/ LG전자 최근 100일의 종가 보기]
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override()
import numpy as np
import pandas as pd
import FinanceDataReader as fdr
df_1 = fdr.DataReader('005930 ','2023')
df_2 = fdr.DataReader('066570 ','2023')
df = pd.DataFrame()
df['Samsung'] = df_1['Close']
df['LG'] = df_2['Close']
# tail(100) 최근 100일 15,8 사이즈
df.tail(100).plot(figsize=[15,8], grid=True)
#df[df['Change'] > 0.05]
#df.plot(y=['Open','Close'],figsize=[15,8], grid=True)
[3 일 이동평균선의 수익률 구하기]
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override()
import numpy as np
import pandas as pd
import FinanceDataReader as fdr
df =fdr.DataReader('005930','2023')
# 종가
df = df[['Close']]
# 3일간의 평균
df['ma'] = df.rolling(3).mean()
df['action'] = np.where(df['Close'] > df['ma'], 'buy', 'sell')
#df['action_temp'] = df['action'].shift(1)
df.iloc[-1,-1] = 'sell'
cond1 = (df['action'] == 'buy') & (df['action'].shift(1)=='sell')
cond2 = (df['action'] == 'sell') & (df['action'].shift(1)=='buy')
df_buy = df[cond1]
df_sell = df[cond2]
df_result = pd.concat([df_buy, df_sell], axis=1)
df_result.head(30)
#df['real_buy'] = np.where(cond1, 'buy','')
#df
[n 일 이동평균선의 수익률 구하기]
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override()
import numpy as np
import pandas as pd
import FinanceDataReader as fdr
def get_return(code,n):
df =fdr.DataReader(code,'2023')
# 종가
df = df[['Close']].copy()
# 3일간의 평균
df['ma'] = df.rolling(n).mean().shift(1)
df['action'] = np.where(df['Close'] > df['ma'], 'buy', 'sell')
#df['action_temp'] = df['action'].shift(1)
df.iloc[-1,-1] = 'sell'
cond1 = (df['action'] == 'buy') & (df['action'].shift(1)=='sell')
cond2 = (df['action'] == 'sell') & (df['action'].shift(1)=='buy')
df_buy = df[cond1].reset_index()
df_buy.columns = ['날짜','종가(buy)','이평값','액션']
df_sell = df[cond2].reset_index()
df_sell.columns = ['날짜','종가(sell)','이평값','액션']
df_result = pd.concat([df_buy, df_sell], axis=1)
df_result['수익률'] = df_result['종가(sell)'] / df_result['종가(buy)']
#cumprod 누적곱
return df_result[['수익률']].cumprod().iloc[-1,-1] -1
get_return('005930',6)
[단기n, 장기 n2 일 이동평균선의 수익률 구하기]
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override()
import numpy as np
import pandas as pd
import FinanceDataReader as fdr
def get_return_sl(code, n1,n2):
df =fdr.DataReader(code,'2023')
# 종가
df = df[['Close']].copy()
# 3일간의 평균
df['ma1'] = df['Close'].rolling(n1).mean().shift(1)
# 3일간의 평균
df['ma2'] = df['Close'].rolling(n2).mean().shift(1)
df['action'] = np.where(df['ma1'] > df['ma2'] ,'buy' , 'sell')
df.iloc[-1,-1] = 'sell'
cond1 = (df['action'] == 'buy') & (df['action'].shift(1)=='sell')
cond2 = (df['action'] == 'sell') & (df['action'].shift(1)=='buy')
df_buy = df[cond1].reset_index()
df_buy.columns = ['날짜','종가(buy)','이평값1','이평값2','액션']
df_sell = df[cond2].reset_index()
df_sell.columns = ['날짜','종가(sell)','이평값1','이평값2','액션']
df_result = pd.concat([df_buy, df_sell], axis=1)
df_result['수익률'] = df_result['종가(sell)'] / df_result['종가(buy)']
#cumprod 누적곱
df_final = (df_result[['수익률']].cumprod().tail(1) -1) *100
df_final['단기'] = n1
df_final['장기'] = n2
return df_final
[최적의 이동평균선 구하기]
for short in range(3,11):
for long in range(30,61):
try:
df= get_return_sl('005930',short,long)
dfs.append(df)
except:
print(f'error - {long, short}')
df_result = pd.concat(dfs)
df_result.sort_values(by='수익률',ascending=False)
1주차 : 네이버에서 뉴스 가져오는 함수 , 코랩 폴더에 저장 및 다운로드 ,네이버금융사진 저장
https://iamipro.tistory.com/231
스파르타코딩클럽 금융인을 위한 파이썬 업무자동화 1주차
스파르타코딩클럽 금융인을 위한 파이썬 업무자동화 1주차 import urllib.request import openpyxl wb = openpyxl.load_workbook('관리종목.xlsx') sheet = wb['종목'] new_rows = list(sheet.rows)[1:] for row in new_rows: print(row[0].val
iamipro.tistory.com
2주차 : 데이터프레임( 순이익, 종가, pbr<1, 시총1조이상, per<20) 그려보기 , 해외주식(야후쿼리) 정보 보기
https://iamipro.tistory.com/232
금융인을 위한 파이썬 업무자동화 2주차
DataFrame 만들기 Pandas : 데이터 분석 해외주식야후사이트: https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch Apple Inc. (AAPL) Stock Price, News, Quote & History - Yahoo Finance Find the latest Apple Inc. (AAPL) stock quote, histor
iamipro.tistory.com
3주차 : dart 상장/비상장 엑셀 추출, dart API 로 종목 정보 (증자,배당,직원정보,이사보수, 재무정보, 이익잉여금, 당기순이익, 지분율, 연봉 TOP5 등)
https://iamipro.tistory.com/233
금융인을 위한 파이썬 업무자동화 3주차
스파르타코딩클럽 금융인을 위한 파이썬 업무자동화 3주차 [다트 open api 발급] https://opendart.fss.or.kr/uat/uia/egovLoginUsr.do 전자공시 OPENDART 시스템 | 로그인 opendart.fss.or.kr [ 구글 드라이브 코랩 가기] h
iamipro.tistory.com
4주차 : 최적의 단기/장기 이동평균선 구하기
https://iamipro.tistory.com/234
금융인을 위한 파이썬 업무자동화 4주차
금융인을 위한 파이썬 업무자동화 4주차 https://drive.google.com/ Google Drive: 로그인 이메일 또는 휴대전화 accounts.google.com [라이브러리 설치 명령어 yfinance pandas-datareader finance-datareader !pip install yfinance
iamipro.tistory.com
5주차 : 변동성 돌파적략 최적값 k 구하기 , 월요일에 사서 금요일에 팔경우 수익나는 종목 보기
https://iamipro.tistory.com/235
금융인을 위한 파이썬 업무자동화 5주차
금융인을 위한 파이썬 업무자동화 5주차 https://drive.google.com/ Google Drive: 로그인 이메일 또는 휴대전화 accounts.google.com 전일 종가에서 금일 시작가에서 판다. [ 오르는 추세라 판단] [주가 가져오는
iamipro.tistory.com
'4차산업혁명의 일꾼 > 데이터 크롤링과 파이썬' 카테고리의 다른 글
[왕초보] 마케터, 기획자를 위한 실전 데이터 분석 1주차[파이썬,python] (0) | 2023.04.11 |
---|---|
금융인을 위한 파이썬 업무자동화 5주차 (0) | 2023.03.29 |
금융인을 위한 파이썬 업무자동화 3주차 (0) | 2023.03.28 |
금융인을 위한 파이썬 업무자동화 2주차 (0) | 2023.03.27 |
스파르타코딩클럽 금융인을 위한 파이썬 업무자동화 1주차 (0) | 2023.03.27 |