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) и консистентности.

  • Поддерживаются различные форматы дат; при невозможности — будет предупреждение.