3. FMP api 사용 및 피쳐 엔지니어링

개요

fmp api를 구독하여, 데이터를 분석 및 확인해보았습니다.
기업들의 이름인 Ticker 를 제공하지 않아, 따로 크롤링이 필요했습니다.
결측치는 손으로 셀 수 있는 정도로 적었고, 재무제표가 각 나라의 통화기반으로 구성이 되어있어 이를 미국통화로 바꾸어주는 전처리가 필요했습니다.

fmp api 이용 방법

fmp는 financialmodelingprep 의 줄임말이다. 해당 사이트에 들어가서 가입을 진행하면된다.

구독 가격 비교

Pasted image 20260327091713.png
위의 사진은 사이트의 구독 가격 비교 내용이다.
주요 차이점은 아래와 같다. 아래에서 데이터라 함은 재무제표, 가격데이터라고 생각해도 무방하다.

STARTER와 PREMIUM의 경우 정적인 분석 (백테스팅)에 적합하다고 봤고, ULTIMATE는 실시간 매매에 적합한 것 같았다.
나의 경우는 백테스팅을 기획하고 있으므로, STARTER 티어를 사용하기로 결정하였다. (추가로 가격문제..)

데이터 끌고 오기

가입을 완료했다면, FMP 홈페이지 > General > Dashboard 를 확인하면 API Key를 확인할 수 있다.
해당 API Key를 잘 저장해두자.

api

나는 아래와 같은 api를 사용하여, 핵심적인 재무제표와 일간 데이터를 끌고 온다.

ticker list

ticker 리스트를 제공하지 않는 문제를 해결하기위해 아래와 같이 미국 3대지수 기업의 위키피디아를 크롤링하여 csv파일에 저장하였다.

data 삽입

마지막으로 PostgreSQL에 SQL로 저장하여 ticker 별 재무제표와 가격 데이터를 저장하였다.
저장할때는 balance_sheet과 cash_flow 와 같이 분기별 재무제표 관련데이터를 저장하는 테이블과 price와 같이 매일매일의 가격을 알려주는 데이터를 나누어 저장하였다.

피쳐 엔지니어링

잘 저장된 데이터를 아래와 같은 목적을 위해 검증을 진행하였다.

피쳐 분석

python 코드와 sql을 사용해 결측치 확인을 진행하였다.
파이썬에서 csv파일을 데이터 프레임으로 불러와서, 각 지표별 최소, 최대, 중앙, 평균을 분석하였다.

결측치 확인

피쳐 통계

주요 내용만 아래와 같이 정리하였다.

지표	min 50% max mean 
revenue 302554000.00 12019000000.00 2894308000000.00 38494560278.23
eps_growth -1256.03 0.10 292.75 0.01

피쳐 통계 기반 SQL 분석

정리 및 해결책