지난 포스팅에 이어 새로운 데이터를 업데이트 하는 코딩을 구성하고자 한다. 제일 처음 떠오른 생각은 다음과 같이 input 함수를 이용해서 분기별 데이터를 입력하는 것을 고려하였다.
def update_data(stock_df):
print("\nCurrent data:")
print(stock_df)
new_data = float(input("Enter new return value: "))
new_row = pd.DataFrame({'Returns': [new_data]})
stock_df = pd.concat([stock_df, new_row], ignore_index=True)
return stock_df
file_path_stock_a = 'KOSPI.xlsx'
file_path_stock_b = 'S&P_500_Historical Data_(2).xlsx'
df_stock_a = read_data(file_path_stock_a)
df_stock_b = read_data(file_path_stock_b)
df_stock_a = update_data(df_stock_a)
df_stock_b = update_data(df_stock_b)
df_stock_a.to_excel(file_path_stock_a, index=False)
df_stock_b.to_excel(file_path_stock_b, index=False)
print("Data Saved")
위 코드를 입력하여 실행시키면 다음과 같은 결과가 나온다. (다음 분기 KOSPI와 S&P500 수익률은 각각 0.01로 설정하고 테스트 차원에서 두 번 입력한 상황이다.)


그러나 위와 같은 방법으로는 꾸준한 관리가 힘들 수 밖에 없다는 결론에 도달하였다. 매 분기 별로 새로운 정보가 업데이트 될 때마다 각각의 신규 데이터를 입력하는 방식은 데이터 양, 즉 고려 대상의 수가 많아지면 많아질수록 직접 입력하여야 하는 데이터 값이 증가하게 된다는 문제점이 있었다. 또한 각 데이터가 하나의 웹사이트에서 업데이트 되는 것이 아니기 때문에 각각의 데이터를 하나하나 직접 찾아서 입력하여야 하는데 이 작업이 여간 귀찮은 일이 아니다.
따라서 지금은 새로운 데이터를 웹페이지에서 자동적으로 인식하고 추출하여 저장한 뒤 평균 및 표준편차를 계산하는 것까지 완료할 수 있는 명령어를 만들어 내는 것이 맹점이다. 검색해보니 request 모듈을 통해 html 콘탠츠를 가져오고 BeautifulSoup4 모듈을 이용하여 해당 내용을 해석(parsing)할 수 있다고 한다. (사실 필자는 이 부분을 정확하게는 이해 못 했다. 다음의 내용은 사실과 매우 다를 수 있음에 유의하기를 권한다.) 일반적인 웹사이트는 그 모습을 기술하기 위한 '마크업 언어'인 HTML(Hyper Text Mark-up Language)로 이루어져 있다.
request 모듈이 여기서 사용되는 것은 request.get( ) 함수를 통해서 원하는 웹사이트에서 이러한 html을 추출하여 코딩 환경으로 가져오기 위함이고 BeautifulSoup4 모듈은 이렇게 가져온 html을 해석해서 그 중에서 내가 원하는 종류의 태그를 출력할 수 있도록 도와주기 위함이다. 다만 아직까지 필자의 코딩 실력이 모듈과 함수를 모두 이해하기는 어려워 한동안은 직접 입력하는 방식으로 진행하며 코딩에 대한 이해도를 높여야 할 것으로 보인다. 다음의 간단한 예시는 한경 코리아 마켓 홈페이지에서 코스피 데이터를 추출하기 위한 과정이다. 그러나 이는 끝내 제대로 이루어지지 않았으니 그 과정에 대하여 참고만 하기를 바란다.
시장종합 | 한국경제
시장종합 장종료 원/달러 1,354.90 1.70 +0.13% 코리아마켓 금융 정보는 각 콘텐츠 제공업체로부터 받는 투자 참고사항이며, 오류가 발생하거나 지연될 수 있습니다. 한경닷컴과 콘텐츠 제공업체는
markets.hankyung.com




'파린이의 퀀트 투자' 카테고리의 다른 글
| 퀀트 투자_주식: 총 정리_PBR (0) | 2024.04.10 |
|---|---|
| 퀀트 투자_주식: 총 정리_PER (0) | 2024.04.10 |
| 퀀트 투자_주식: S&P500과 KOSPI(2) (0) | 2024.04.09 |
| 퀀트 투자_주식: S&P500과 KOSPI(1) (0) | 2024.04.09 |
| 퀀트 투자_주식: S&P500과 ETS model(2) (0) | 2024.04.09 |