added window size optimization classes

This commit is contained in:
Oleg Sheynin
2025-07-31 18:53:42 +00:00
parent 0af334bdf9
commit 8e6ac39674
8 changed files with 283 additions and 62 deletions
+3 -9
View File
@@ -3,11 +3,10 @@ from __future__ import annotations
from abc import ABC, abstractmethod
from datetime import datetime
from enum import Enum
from typing import Any, Dict, Optional, Type, cast, Generator, List
from typing import Any, Dict, Generator, List, Optional, Type, cast
import pandas as pd
from pt_strategy.model_data_policy import DataParams
from pt_strategy.model_data_policy import DataWindowParams
class PairState(Enum):
@@ -26,7 +25,6 @@ class TradingPair:
stat_model_price_: str
model_: PairsTradingModel # type: ignore[assignment]
model_tdp_: ModelDataPolicy # type: ignore[assignment]
user_data_: Dict[str, Any]
@@ -44,7 +42,6 @@ class TradingPair:
self.symbol_a_ = instruments[0]["symbol"]
self.symbol_b_ = instruments[1]["symbol"]
self.model_ = PairsTradingModel.create(config)
self.model_tdp_ = ModelDataPolicy.create(config)
self.stat_model_price_ = config["stat_model_price"]
self.user_data_ = {
"state": PairState.INITIAL,
@@ -159,12 +156,9 @@ class TradingPair:
})
def run(self, market_data: pd.DataFrame, data_params: DataParams) -> Prediction: # type: ignore[assignment]
def run(self, market_data: pd.DataFrame, data_params: DataWindowParams) -> Prediction: # type: ignore[assignment]
self.market_data_ = market_data[data_params.training_start_index:data_params.training_start_index + data_params.training_size]
return self.model_.predict(pair=self)
while self.model_tdp_.has_next_training_data():
training_data = self.model_tdp_.get_next_training_data()