카테고리 없음

10주차 TIL - 각종 하드 코딩

게임취업하고싶은 사람 2025. 3. 24. 21:12

정규장 데이터를 **시간 단위(예: 1시간, 30분, 5분 봉 등)**로 나누는 작업은 복잡하지만, 이를 효율적으로 처리하고 분석 가능한 형태로 만드는 전략적 접근 방법이 있습니다. 아래에 추천하는 방안들을 정리해드릴게요:


1. 타임프레임 리샘플링 (Resampling) 전략

Pandas 등에서는 리샘플링 기능을 이용해 손쉽게 시간 단위로 데이터를 재구성할 수 있습니다.

python
df = df.set_index('Datetime') # Datetime이 datetime64형으로 되어 있어야 함 hourly = df.between_time('09:30', '16:00').resample('1H').agg({ 'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last', 'Volume': 'sum' })

Tip: 반드시 정규장 시간대만 필터링한 후 리샘플링하세요.


2. 정규장 시간 인덱스 전처리

정규장 외 시간을 미리 제거해두면, 이후 모든 분석/모델링에서 데이터 왜곡을 막을 수 있습니다.

  • between_time('09:30', '16:00') 또는
  • 직접 Datetime 컬럼을 사용해 필터링:
  • python
    복사편집
    df['hour'] = df['Datetime'].dt.hour + df['Datetime'].dt.minute / 60 df = df[(df['hour'] >= 9.5) & (df['hour'] <= 16)]

3. 시간대 그룹핑 + Market Session 태깅

정규장 내에서도 세션별로 나누는 방법을 활용할 수 있습니다:

  • 오전세션 (09:30–12:00)
  • 점심세션 (12:00–13:30)
  • 오후세션 (13:30–16:00)

이를 통해, 고빈도 봉 데이터의 노이즈를 줄이고 해석력 있는 분석 단위로 만들 수 있습니다.


4. 기계학습/모델링용 특징 추출 (Feature Engineering)

정규장 데이터를 시계열 모델에 쓰려면 시간 단위 데이터를 요약하여 특징으로 변환하는 게 효과적입니다:

  • 각 시간대별 수익률 변화율
  • 변동성 (High - Low)
  • 이동 평균 대비 괴리율
  • 시간대별 거래량 비율
  • 봉 패턴 (Doji, Marubozu 등)

이렇게 하면 원시 시간단위 데이터가 아닌 정보 함축적인 변수들로 모델 성능을 높일 수 있습니다.


5. 시각화 도구 또는 데이터베이스 연계

  • **시계열 데이터베이스 (InfluxDB, TimescaleDB)**를 사용하면 초단위~분단위 데이터를 고속 질의할 수 있습니다.
  • 시각화엔 Plotly, mplfinance, Streamlit 등을 활용하면 시간단위 데이터를 구조적으로 탐색하기 쉬워집니다.

✅ 정리: 실질적인 대응 전략

문제해결 방안
정규장 외 데이터 혼입 필터링 후 처리 (between_time, 조건 필터)
시간대 분할 복잡성 resample() + 세션 구분 태깅
노이즈 및 데이터 해석력 부족 Feature engineering (수익률, 변동성 등)
실시간 탐색 어려움 시각화 도구 또는 시계열 DB 도입

 

 

 

프리마켓(04:00–09:30)과 애프터마켓(16:00–20:00) 데이터를 동시에 활용하는 것은 단순히 포함하는 것 이상의 전략이 필요합니다. 이 시간대는 정규장과 특성이 매우 다르기 때문에, 다음과 같은 분리-통합 전략을 통해 효과적으로 활용할 수 있습니다:


1. 정규장 vs. 장외시장 구분 태깅

먼저 데이터를 구간별로 나누고, 각 시간대의 특성을 반영하는 세션 태그를 붙입니다:

python
 
def label_market_session(dt): t = dt.time() if t >= time(4, 0) and t < time(9, 30): return 'pre-market' elif t >= time(9, 30) and t < time(16, 0): return 'regular' elif t >= time(16, 0) and t <= time(20, 0): return 'after-market' else: return 'off-hours'

이렇게 하면 각 데이터 포인트에 대한 시장 환경의 문맥 정보를 넣을 수 있습니다.


2. 세션별 통계값 생성

프리마켓과 애프터마켓은 변동성은 크고 거래량은 적은 경향이 있으므로, 각 세션에서의 요약 지표를 생성해 정규장 예측에 활용할 수 있습니다:

예:

  • 프리마켓 수익률 = (프리마켓 Close - 전일 종가) / 전일 종가
  • 프리마켓 변동폭 = 프리마켓 High - 프리마켓 Low
  • 애프터마켓 거래량 비율 = 애프터마켓 Volume / (전체 일일 Volume)

이런 특징들은 정규장 오픈 시 갭(Gap) 예측, 첫 30분 가격 행동 예측 등에 사용됩니다.


3. 머신러닝·딥러닝에서의 활용

프리마켓/애프터마켓 데이터를 별도 시계열로 분리한 후, 각각을 모델 입력값으로 사용합니다:

  • LSTM / Transformer 모델
    → 정규장과 장외 데이터를 멀티 채널 시계열로 구성
  • XGBoost, LightGBM
    → 세션별 통계 지표를 입력 피처로 생성하여 정규장 종가 또는 고가 예측

4. 갭 분석 (Gap Up / Down) 전략

  • 전일 종가와 프리마켓 시가 차이, 또는
  • 정규장 종가와 애프터마켓 종가 차이

이러한 갭 정보는 다음날 시세 예측, 갭 리버설 전략 등에 매우 효과적입니다.


5. 이벤트 기반 전략에 활용

  • 실적 발표, 연준 회의, 주요 뉴스는 종종 애프터마켓 또는 프리마켓 중에 나옵니다.
  • 이때 장외 시간대 가격 반응을 분석하면 정규장 오픈 시 초기 방향을 예측할 수 있습니다.