반응형
1. FianceDataReader 설명 및 미국 주식 가격 조회는 아래 링크를 참조
2. ETF 종목 파일에 저장
import FinanceDataReader as fdr
import pickle
df_etfus = fdr.StockListing('ETF/US')
df_etfus = df_etfus[['Name','Symbol']]
codepath="./etfus.txt"
f = open(codepath,"w")
#pickle 모듈을 사용하여 dataframe 타입을 파일에 저장한다.
df_etfus.to_pickle(codepath)
f.close()
- fdr.StockListing('ETF/US')를 통해서 ETF 종목을 불러와서 /etfus.txt에 dataframe 형태로 저장한다.
- 참고로 파일에 저장을 해놓는 이유는 속도를 빠르게 하기 위함입니다.
3. 호출 시 ETF/US 정보 반환 함수
#ETF/US 연결하는 함수
def ETFUS_connect():
codepath = "./DBandDB_SOURCE/etfus.txt"
f = open(codepath,"r")
df_etfus = pd.read_pickle(codepath)
f.close()
return df_etfus
- 함수만 호출 시 ETF/US의정보가 담긴 dataframe이 반환되게끔 만들어놓았다.
4. 호출 시 형식에 맞춰 가격 정보를 반환하는 함수
#ETF/US 가격 생성하는 함수
def ETFUS_rate(df_etfus,Name):
nowDATE = time_format()
symbol = df_etfus[df_etfus.Name==Name].Symbol.values[0].strip()
rate = fdr.DataReader(symbol,nowDATE[:7])
rate = rate[['Close','Change']]
etfusrate = rate[-2:]
ETFUS = []
ETFUS.append(nowDATE)
ETFUS.append(Name)
ETFUS.append('$ '+str(etfusrate['Close'].values[1]))
gap = "{:.2f}".format(etfusrate['Close'].values[1]-etfusrate['Close'].values[0])
ETFUS.append('$ '+gap)
ETFUS.append(str("{:.2f}".format(etfusrate['Change'].values[1]*100))+'%')
return ETFUS
- 정보를 입력한 상태로 함수 호출을하면 가격 정보가 담긴 리스트가 반환되게 만들어놓았다.
5. 3번 4번 함수를 이용하여 html에 가격 정보 넘기기
#미국 ETF 종목 검색
@app.route("/inquiry/etfUS")
def EtfUS():
return render_template("inquiryEtfUS.html")
#미국 ETF 오늘의 시세 출력
@app.route("/inquiry/etfUSrate")
def EtfUSrate():
try:
company = request.args.get('company')
date = request.args.get('date')
df_etfus = US.ETFUS_connect()
stock_rate = US.ETFUS_rate(df_etfus,company)
df = US.df_made(df_etfus,company,date)
#chart img
US.basic_chart(df,company)
#chart html
US.real_chart(df,company)
except:
return redirect("/")
return render_template("inquiryEtfUSrate.html",searchingBy=company,
stockRate=stock_rate)
- df_etfus = US.ETFUS_connect()
- stock_rate = US.ETFUS_rate(df_etfus,company)
- 위 두 함수를 통해서 최종적으로 inquiryEtfUSrate.html에 보낼 stock_rate 값을 구했다.
6. 최종 결과
'프로그래밍 > 파이썬' 카테고리의 다른 글
[Django 기초] 파이썬 장고 - 개념 정리 및 웹 페이지 만들기 (1) | 2022.10.11 |
---|---|
[Python] Matplotlib - 데이터 시각화 활용예제(Feat. 산점도, 히스토그램, 그래프, 차트) (3) | 2022.10.10 |
[Python] 파이썬 FianceDataReader - 미국 주식 가격 조회하기 (6) | 2022.10.07 |
[Python] 파이썬 바이낸스 시세 가져와서 웹으로 출력하기(feat. ccxt) (0) | 2022.10.06 |
[Python] 파이썬 데이터 분석 - 야후 파이낸스 데이터의 문제점과 보완방법 (1) | 2022.10.05 |