Data Modules - Модули данных BQuant
📚 Обзор
Data модули обеспечивают работу с финансовыми данными: загрузку, обработку, валидацию и управление sample данными.
🗂️ Модули
📥 bquant.data.loader — Загрузка данных
load_ohlcv_data()— загрузка OHLCV из CSV с автопарсингом датload_symbol_data()— загрузка по символу и таймфрейму через configload_xauusd_data()— быстрая загрузка данных XAUUSDload_all_data_files()— загрузка всех CSV изDATA_DIR(без рекурсии)get_data_info()— информация о загруженных данныхget_available_symbols()/get_available_timeframes()— доступные символы/таймфреймы
🔄 bquant.data.processor — Обработка данных
clean_ohlcv_data()— очистка данных с удалением выбросовremove_price_outliers()— удаление ценовых выбросовcalculate_derived_indicators()— расчет производных индикаторовresample_ohlcv()— изменение временного интервалаnormalize_prices()— нормализация ценdetect_market_sessions()— определение торговых сессийadd_technical_features()— добавление технических признаковcreate_lagged_features()— генерация лаговых признаковprepare_data_for_analysis()— комплексная подготовка для анализа
✅ bquant.data.validator — Валидация данных
validate_ohlcv_data()— валидация OHLCV с детальными проверкамиvalidate_data_completeness()— проверка полноты данныхvalidate_price_consistency()— проверка логической связности ценvalidate_time_series_continuity()— проверка непрерывности временных рядовvalidate_statistical_properties()— проверка статистических свойств
📊 bquant.data.samples — Sample данные
get_sample_data()— получение embedded данных в pandas/dict форматеlist_datasets()/list_dataset_names()— список доступных датасетовget_dataset_info()— детальная информация о датасетеvalidate_dataset()— валидация целостности датасетаget_sample_preview()— предварительный просмотр данныхfind_datasets()— поиск по критериям (symbol, timeframe, source)compare_sample_datasets()— сравнение датасетовget_data_statistics()— статистика по датасетуconvert_to_dataframe()/convert_to_list_of_dicts()— конвертация форматаload_sample_data— алиасget_sample_data(обратная совместимость)SampleDataGenerator— генератор embedded данных
📋 bquant.data.schemas — Схемы данных
OHLCVRecord— Dataclass для OHLCV записи с валидациейDataSourceConfig— конфигурация источника данныхValidationResult— результат валидации (как структура данных)DataSchema/OHLCVSchema/IndicatorSchema— базовые схемыПредопределенные схемы:
OHLCV_SCHEMA,MACD_SCHEMA,RSI_SCHEMAget_schema()/validate_with_schema()— функции работы со схемами (пока stub)
🔍 Быстрый поиск
По функциональности
Загрузка данных
load_ohlcv_data()— Загрузка OHLCV из файлаload_symbol_data()— Загрузка по символу/таймфреймуload_xauusd_data()— Быстрый хелпер для XAUUSDload_all_data_files()— Пакетная загрузка CSV изDATA_DIR
Обработка данных
clean_ohlcv_data()— Очистка данныхprepare_data_for_analysis()— Подготовка к анализуresample_ohlcv()— Изменение интервалаremove_price_outliers()— Удаление выбросовcalculate_derived_indicators()— Производные индикаторыnormalize_prices()— Нормализация ценdetect_market_sessions()— Сессииadd_technical_features()— Техпризнакиcreate_lagged_features()— Лаги
Валидация данных
validate_ohlcv_data()— Валидация OHLCVvalidate_data_completeness()— Полнотаvalidate_price_consistency()— Логика ценvalidate_time_series_continuity()— Непрерывность рядаvalidate_statistical_properties()— Статистика
Sample данные
get_sample_data()— Получение sample данныхlist_datasets()/list_dataset_names()— Список datasetsget_dataset_info()— Информация о datasetget_data_statistics()— Статистика по датасетуconvert_to_dataframe()/convert_to_list_of_dicts()— Конвертация формата
По типу
🏗️ Классы/структуры
OHLCVRecord,DataSourceConfig,ValidationResult,SampleDataGenerator
🔧 Функции
load_ohlcv_data(),clean_ohlcv_data(),validate_ohlcv_data(),get_sample_data()
📋 Типы данных
DataSchema,OHLCVSchema,IndicatorSchema, предопределенныеOHLCV_SCHEMA/MACD_SCHEMA/RSI_SCHEMA
💡 Примеры использования
Загрузка данных
from bquant.data.loader import load_ohlcv_data, load_symbol_data, load_xauusd_data
# Загрузка из CSV файла (с указанием контекста)
data = load_ohlcv_data('data.csv', symbol='XAUUSD', timeframe='1h')
# Загрузка по символу/таймфрейму через конфиг
tv_data = load_symbol_data('XAUUSD', '1h', data_source='tradingview', quote_provider='oanda')
# Быстрая загрузка XAUUSD
xau = load_xauusd_data('1h')
Обработка данных
from bquant.data.processor import (
clean_ohlcv_data, prepare_data_for_analysis, resample_ohlcv,
remove_price_outliers
)
# Очистка данных
clean_data = clean_ohlcv_data(data, remove_outliers=True, fill_method='forward')
# Подготовка для анализа
analysis_data = prepare_data_for_analysis(clean_data, add_tech_features=True, normalize=True)
# Изменение временного интервала
hourly_data = resample_ohlcv(data, '1H')
daily_data = resample_ohlcv(data, '1D')
Валидация данных
from bquant.data.validator import (
validate_ohlcv_data, validate_data_completeness
)
# Валидация OHLCV данных
validation_result = validate_ohlcv_data(data)
if not validation_result['is_valid']:
print(f"Validation errors: {validation_result['issues']}")
print(f"Warnings: {validation_result['warnings']}")
# Проверка полноты
completeness = validate_data_completeness(data)
print(f"Data completeness: {completeness['is_complete']}")
Sample данные
from bquant.data.samples import (
get_sample_data, list_datasets, list_dataset_names, get_dataset_info,
convert_to_dataframe, convert_to_list_of_dicts, get_data_statistics
)
# Список доступных datasets
datasets_summary = list_datasets()
names = list_dataset_names()
# Информация о датасете
info = get_dataset_info('tv_xauusd_1h')
# Загрузка sample данных (по умолчанию DataFrame)
df = get_sample_data('tv_xauusd_1h')
# Загрузка как список словарей и конвертация в DataFrame
data_list = get_sample_data('tv_xauusd_1h', format='dict')
df2 = convert_to_dataframe(data_list, 'tv_xauusd_1h')
# Обратная конвертация
data_list2 = convert_to_list_of_dicts(df, 'tv_xauusd_1h')
# Статистика по данным
stats = get_data_statistics('tv_xauusd_1h')
Генератор Sample данных
from bquant.data.samples import SampleDataGenerator
generator = SampleDataGenerator()
# generator.generate_all() # создаст embedded-файлы согласно конфигурации
Логирование {#logging}
Data модули используют контекстное логирование с техническими деталями загрузки и обработки данных. При использовании с NotebookSimulator может возникать дублирование сообщений.
Настройка для research скриптов:
import logging
# Скрыть технические логи data модулей
logging.getLogger('bquant.data').setLevel(logging.WARNING)
См. подробности: Управление логированием
🔗 Связанные разделы
Core Modules — Базовые модули
Indicators — Технические индикаторы
Analysis — Аналитические модули
Visualization — Модули визуализации
📖 Детальная документация
Loader: loader.md — загрузка данных (файлы, символ/таймфрейм, списки доступных)
Processor: processor.md — очистка, ресемплинг, производные индикаторы
Validator: validator.md — комплексная валидация, полнота, логика цен, непрерывность
Schemas: schemas.md — схемы данных и предопределённые схемы
Samples: samples.md — API sample‑данных (структура, функции, примеры)
Следующий раздел: Indicators 📈