본문 바로가기

퀀트(Quant)

6. ETF 기본데이터 추출(거래대금 상위 데이터)

미국ETF 중 일일 거래대금이 가장큰 ETF가 어떤것인지 추출해봅니다.

모든 소스코드는 구글 코랩을 이용하여 테스트 하였습니다.

 

1. 앞에서 생성한 ticdf활용

cnt = 0
tic  = []
for idx,row in ticdf.iterrows():
    cnt = cnt + 1
    ticker      = row['ticker']
    first_day   = row['first_day']
    last_close  = row['last_close']
    last_volume = row['last_volume']
    last_amt  = int(row['last_close'] * row['last_volume'])
    print("%4d %4s %s %6s" %(cnt, ticker, first_day, format(last_amt, ',')))
    tic.append([ticker, first_day, last_close, last_volume, last_amt])

앞에서 생성한 ticdf를 이용하여 원하는 형태의 자료만 추출해 봅니다.

추출한 정보는 ETF명, ETF의 상장일, 최조일 종가 및 거래량, 거래대금입니다.

(참고로 상장일 정보는 여기선 첫데이터로 추출한 것이므로 실제 상장일과 약간 차이납니다.)

 

2. 거래대금순으로 순위매기기

col_name = ['ticker', 'first_day', 'last_close', 'last_volume', 'last_amt']
dflist = pd.DataFrame(tic, columns=col_name)
dflist['rank'] = dflist['last_amt'].rank(ascending=False)

rank함수를 사용하여 데이터프레임의 데이터를 거래대금순으로 순위를 매깁니다.

 

3. 거래대금순 정렬

df = dflist.sort_values(by=['rank'], axis=0, ascending=True)

거래대금 순서로 데이터프레임 데이터를 정렬합니다.

 

4. 추출한 데이터 예시

   데이터를 보면 SPY(S&P 500 지수를 추종하는 대표적인 ETF)가 거래대금 1위인것을 확인할 수 있습니다.

   2위는 QQQ(나스닥 100인덱스를 추종하는 ETF)로 둘다 거래대금이 어마어마 합니다.

   SPY의 첫데이터는 1993-01-29일부터 데이터가 존재합니다. 실제 상장일(1993-01-22.)과 며칠 차이가 나네요.

   최종일자(이 데이터를 돌린날짜가 아마 2021. 12.21.쯤)와 그때의 거래량을 기준으로 거래대금을 산출하였습니다. 

   즉, SPY ETF의 경우 2021.12.21.기준으로 하루 거래대금이 48,744,192,481달러이므로 약 487억달러네요.

   이 자료를 활용하여 거래대금을 확인하는 이유는 향후 자산관리를 위한 포트폴리오 구성 시 거래대금이 적은 경우

   매수호가와 매도호가간 차이로 인해 잦은 거래 시 거래비용이 증가할 수 있으므로 확인이 중요합니다.

5. 마무리

dflist.to_csv('drive/My Drive/ETF/ETFRank_211221.csv')

향후 분석에 사용하기 위해 파일로 저장합니다.

ETFRank_211221.csv
0.15MB