bquant.data.loader — Загрузка данных
Обзор
Функции для загрузки OHLCV‑данных из CSV и по символу/таймфрейму на основе конфигурации. Включает нормализацию колонок, разбор дат, валидацию структуры.
Основные функции
load_ohlcv_data(file_path, symbol=None, timeframe=None, validate_data=True) -> DataFrameЗагружает CSV, нормализует имена колонок (
open/high/low/close/volume), пытается распарсить дату, опционально валидирует структуру.
load_symbol_data(symbol, timeframe, data_source='tradingview', quote_provider='default', validate_data=True) -> DataFrameНаходит путь с помощью
bquant.core.config.get_data_path()и загружает файл.
load_xauusd_data(timeframe='1h', data_source='tradingview', quote_provider='oanda') -> DataFrameУдобный хелпер для XAUUSD.
load_all_data_files(data_dir=None, pattern='*.csv', recursive=False) -> Dict[str, DataFrame]Загружает все подходящие файлы из директории (по умолчанию
DATA_DIR), без рекурсии по умолчанию.
Информация/списки:
get_data_info(df) -> Dict[str, Any]get_available_symbols(data_dir=None) -> List[str]get_available_timeframes(data_dir=None, data_source='tradingview') -> List[str]
Примеры
Загрузка из файла и базовая информация:
from bquant.data.loader import load_ohlcv_data, get_data_info
df = load_ohlcv_data('data/XAUUSD_1h.csv', symbol='XAUUSD', timeframe='1h')
print(get_data_info(df))
Загрузка по символу/таймфрейму:
from bquant.data.loader import load_symbol_data
df = load_symbol_data('XAUUSD', '1h', data_source='tradingview', quote_provider='oanda')
Загрузка всех файлов:
from bquant.data.loader import load_all_data_files
datasets = load_all_data_files()
print(list(datasets.keys()))
Логирование {#logging}
Модуль использует контекстное логирование с детальными техническими сообщениями:
# Пример вывода логгера
10:54:37 - bquant.data.loader - INFO - [symbol=XAUUSD, timeframe=1h] Loading data from: /path/to/file.csv
10:54:37 - bquant.data.loader - INFO - [symbol=XAUUSD, timeframe=1h] Detected encoding: ascii
10:54:39 - bquant.data.loader - INFO - [symbol=XAUUSD, timeframe=1h] Successfully loaded 21357 rows of data
Управление уровнем логирования:
import logging
# Скрыть технические детали загрузчика
logging.getLogger('bquant.data.loader').setLevel(logging.WARNING)
# Или для всех data модулей
logging.getLogger('bquant.data').setLevel(logging.WARNING)
См. подробности: Управление логированием
Замечания
При
validate_data=Trueиспользуются внутренние проверки структуры (OHLCV) и консистентности.Поддерживаются различные форматы дат; при невозможности — будет предупреждение.