Local changes: Updated model training, removed debug instrumentation, and configuration improvements
This commit is contained in:
51
src/backtesting/data_provider.py
Normal file
51
src/backtesting/data_provider.py
Normal file
@@ -0,0 +1,51 @@
|
||||
"""Historical data management for backtesting."""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import List, Optional
|
||||
from sqlalchemy.orm import Session
|
||||
from src.core.database import get_database, MarketData
|
||||
from src.core.logger import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
class DataProvider:
|
||||
"""Provides historical data for backtesting."""
|
||||
|
||||
def __init__(self):
|
||||
"""Initialize data provider."""
|
||||
self.db = get_database()
|
||||
self.logger = get_logger(__name__)
|
||||
|
||||
def get_data(
|
||||
self,
|
||||
exchange: str,
|
||||
symbol: str,
|
||||
timeframe: str,
|
||||
start_date: datetime,
|
||||
end_date: datetime
|
||||
) -> List[MarketData]:
|
||||
"""Get historical data.
|
||||
|
||||
Args:
|
||||
exchange: Exchange name
|
||||
symbol: Trading symbol
|
||||
timeframe: Timeframe
|
||||
start_date: Start date
|
||||
end_date: End date
|
||||
|
||||
Returns:
|
||||
List of MarketData objects
|
||||
"""
|
||||
session = self.db.get_session()
|
||||
try:
|
||||
return session.query(MarketData).filter(
|
||||
MarketData.exchange == exchange,
|
||||
MarketData.symbol == symbol,
|
||||
MarketData.timeframe == timeframe,
|
||||
MarketData.timestamp >= start_date,
|
||||
MarketData.timestamp <= end_date
|
||||
).order_by(MarketData.timestamp).all()
|
||||
finally:
|
||||
session.close()
|
||||
|
||||
Reference in New Issue
Block a user