본문 바로가기
AI/AI 부트캠프

[AI 부트캠프] DAY 76 - 딥러닝 프로젝트 1

by HOHHOH 2023. 11. 8.

[오늘의 일지]

딥러닝 프로젝트 - 주제 선정, 대회 파악하기, 데이터 파악하기

[상세 내용]

주제 선정

- 우선 주제는 선택지가 두 가지밖에 없었습니다. 케글에서 진행 중인 대회와 이미 끝난 대회 중에서 하나를 선택하는 것이었는데 이왕이면 진행 중인 대회를 선택해서 하는 게 동기부여에 좋을 거 같아서 선택을 했습니다. 그래서 대회의 도메인이 증권시장과 관련이 되어있었는데 증권 관련 도메인 지식이 없다 보니 프로젝트를 진행하는데 난항이 될 거 같다는 생각이 들었습니다.

 

대회 파악하기

- 대회의 주제는 미국 주식시장인 나스닥에서 시장이 마감하기 10분 전에 데이터들을 활용해서 10초마다 예측되는 target값을 구하는 것이었습니다. target을 구하는 공식이 존재하는데 이걸 그냥 주변 데이터들만을 이용해서 머신러닝이나 딥러닝을 돌린다면 크게 효과가 없을 것 같고 제공되는 피쳐들을 이용해서 target을 구하는 공식과 관련된 피처를 새롭게 만든다면 효과적인 결과를 얻을 수 있을 것처럼 보였습니다. 우선 kaggle 대회 링크를 첨가하겠습니다.

 

Optiver - Trading at the Close | Kaggle

 

www.kaggle.com

 

데이터 파악하기

- 데이터의 피처들이 주식과 관련된 용어들이 많이서 파악하는데 조금 시간이 걸렸지만 대략적으로 정리된 것을 보여드리겠습니다.

[모든 크기 관련 열은 USD 기준]
[모든 가격 관련 열은 경매 기간 시작 시 stock wap(가중 평균 가격)을 기준으로 한 가격 변동으로 변환]

stock_id : 주식의 고유 식별자. 모든 시간 버킷에 모든 주식 ID가 존재하는 것은 아님.
date_id : 날짜의 고유 식별자. 날짜 ID는 모든 주식에서 순차적이고 일관됨.
seconds_in_bucket : 해당일의 마감 경매 시작 이후 경과된 초 수로, 항상 0부터 시작.
imbalance_size : 현재 reference_price과 일치하지 않는 금액(USD).
imbalance_buy_sell_flag : 경매 불균형의 방향을 반영하는 지표.
buy-side imbalance : 1
sell-side imbalance : -1
no imbalance : 0
reference_price
순서대로 쌍을 이루는 주식이 최대화되고 불균형이 최소화되며 매수-매도 중간점으로부터의 거리가 최소화되는 가격.
또한, 최적의 매수 가격과 매도 가격 사이의 경계가 가까운 가격과 동일하다고 생각할 수도 있음.
matched_size : 현재 reference_price(USD)으로 매칭할 수 있는 금액.
far_price : 경매 관심자만을 기준으로 일치하는 주식 수를 최대화하는 교차 가격. 이 계산에서는 지속적인 시장 주문이 제외.
Far 가격은 보고 시점에 경매장의 가상 교차되지 않은 가격을 의미.
near_price : 경매 및 지속적인 시장 주문을 기반으로 일치하는 주식 수를 최대화하는 교차 가격.
bid_price : non-auction book에서 가장 경쟁력 있는 구매 수준의 가격.
bid_size : non-auction book에서 가장 경쟁력 있는 매수 수준의 달러 명목 금액.
ask_price : non-auction book에서 가장 경쟁력 있는 판매 수준의 가격.
ask_size : non-auction book에서 가장 경쟁력 있는 매도 수준의 달러 명목 금액.
[Order Book Data]
매수 가격(Bid Price): 구매자가 구매하려는 가격입니다.
매도 가격(Ask Price): 판매자가 판매하려는 가격입니다.
매수 규모(Bid Size): 구매자가 사고 싶어하는 주식의 양입니다.
매도 규모(Ask Size): 판매자가 판매하려는 주식의 양입니다.
=> 시장에서는 거래가 이루어지려면 동일한 가격의 구매자와 판매자가 필요.
wap : non-auction book의 가중 평균 가격.
bid−price∗ask−size+ask−price∗bid−sizebid−size+ask−size 
target : wap of the stock의 60초 미래 움직임에서 synthetic index의 60초 미래 움직임을 뺀 값.
train 세트에만 제공.
synthetic index는 Optiver가 이번 대회를 위해 구성한 나스닥 상장주식의 맞춤형 가중지수.
target 단위는 베이시스 포인트(Basis Point)이며, 이는 금융시장에서 일반적인 측정 단위.
1 베이시스 포인트 가격 변동은 0.01% 가격 변동과 동일.
t가 현재 관찰 시간인 경우 target은 다음과 같이 정의할 수 있음.
Target=(StockWAPt+60StockWAPt−IndexWAPt+60IndexWAPt)∗10000 
time_id
row_id : 유니크 값
(date_id)+(seconds_in_bucket)+(stock_id)

 

[마무리]

 오늘부터 딥러닝 프로젝트가 시작되었습니다. 생각보다 kaggle 대회가 어려워서 진행하는데 난항이 있을 거 같습니다. 그래도 최대한 대회를 이해하고 이어나가는 것이 중요할 것 같습니다.

반응형

댓글