From 8fe934b971f973d4f398bf1fc1223cce78f6393a Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 15 Oct 2025 18:54:54 +0100 Subject: [PATCH] feat(data): add data models for ticker and trading features --- paperone/data.py | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 paperone/data.py diff --git a/paperone/data.py b/paperone/data.py new file mode 100644 index 0000000..3d552f4 --- /dev/null +++ b/paperone/data.py @@ -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