feat(data): add data models for ticker and trading features
This commit is contained in:
parent
3ee3372203
commit
8fe934b971
85
paperone/data.py
Normal file
85
paperone/data.py
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
from dataclasses import dataclass
|
||||||
|
from datetime import datetime
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class TickerData:
|
||||||
|
date: datetime
|
||||||
|
open: float
|
||||||
|
close: float
|
||||||
|
low: float
|
||||||
|
high: float
|
||||||
|
avg: float
|
||||||
|
volume: float
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class TimeSeriesFeatures:
|
||||||
|
ticker: str
|
||||||
|
target_date: datetime
|
||||||
|
current_day_data: TickerData
|
||||||
|
past_30d_data: List[TickerData]
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class TradingFeatures:
|
||||||
|
ticker: str
|
||||||
|
target_date: datetime
|
||||||
|
|
||||||
|
# Current day features
|
||||||
|
current_open: float
|
||||||
|
current_high: float
|
||||||
|
current_low: float
|
||||||
|
current_close: float
|
||||||
|
current_volume: float
|
||||||
|
|
||||||
|
# Lagged price features (last 5 days)
|
||||||
|
close_lag_1: float
|
||||||
|
close_lag_2: float
|
||||||
|
close_lag_3: float
|
||||||
|
close_lag_4: float
|
||||||
|
close_lag_5: float
|
||||||
|
|
||||||
|
# Lagged volume features
|
||||||
|
volume_lag_1: float
|
||||||
|
volume_lag_2: float
|
||||||
|
volume_lag_3: float
|
||||||
|
volume_lag_4: float
|
||||||
|
volume_lag_5: float
|
||||||
|
|
||||||
|
# 5-day rolling window features
|
||||||
|
rolling_5d_mean: float
|
||||||
|
rolling_5d_std: float
|
||||||
|
rolling_5d_min: float
|
||||||
|
rolling_5d_max: float
|
||||||
|
rolling_5d_range: float
|
||||||
|
rolling_5d_volume_mean: float
|
||||||
|
rolling_5d_returns: float
|
||||||
|
|
||||||
|
# 10-day rolling window features
|
||||||
|
rolling_10d_mean: float
|
||||||
|
rolling_10d_std: float
|
||||||
|
rolling_10d_min: float
|
||||||
|
rolling_10d_max: float
|
||||||
|
rolling_10d_range: float
|
||||||
|
rolling_10d_volume_mean: float
|
||||||
|
rolling_10d_returns: float
|
||||||
|
|
||||||
|
# 30-day rolling window features
|
||||||
|
rolling_30d_mean: float
|
||||||
|
rolling_30d_std: float
|
||||||
|
rolling_30d_min: float
|
||||||
|
rolling_30d_max: float
|
||||||
|
rolling_30d_range: float
|
||||||
|
rolling_30d_volume_mean: float
|
||||||
|
rolling_30d_returns: float
|
||||||
|
|
||||||
|
# VIX features (from separate VIX time series)
|
||||||
|
vix_current: float
|
||||||
|
vix_lag_1: float
|
||||||
|
vix_lag_5: float
|
||||||
|
vix_rolling_5d_mean: float
|
||||||
|
vix_rolling_10d_mean: float
|
||||||
|
vix_rolling_30d_mean: float
|
||||||
|
vix_rolling_30d_std: float
|
Loading…
x
Reference in New Issue
Block a user