BQuant Sample Data
Встроенные тестовые данные для демонстрации возможностей BQuant и разработки примеров.
📊 Доступные датасеты
TradingView XAUUSD 1H (tv_xauusd_1h)
Источник: TradingView via OANDA
Символ: XAUUSD (золото)
Таймфрейм: 1 час
Записей: 1,000
Размер: ~540 KB
Период: Июнь-Август 2025
Колонки: time, OHLCV, volume, accumulation_distribution, MACD, signal, RSI, RSI-based MA, regular bullish/bearish signals
MetaTrader XAUUSD M15 (mt_xauusd_m15)
Источник: MetaTrader
Символ: XAUUSD (золото)
Таймфрейм: 15 минут
Записей: 1,000
Размер: ~210 KB
Период: Май 2025
Колонки: time, OHLCV, volume, spread
🚀 Быстрый старт
from bquant.data.samples import get_sample_data, list_datasets
# Получить список всех датасетов
datasets = list_datasets()
for dataset in datasets:
print(f"{dataset['title']}: {dataset['rows']} rows")
# Загрузить данные как pandas DataFrame
df = get_sample_data('tv_xauusd_1h')
print(df.head())
print(f"Shape: {df.shape}")
# Загрузить данные как список словарей
data = get_sample_data('tv_xauusd_1h', format='dict')
print(f"Records: {len(data)}")
print(f"Columns: {list(data[0].keys())}")
📋 API функции
Основные функции
get_sample_data(dataset_name, format='pandas')
Загружает sample данные в указанном формате.
Параметры:
dataset_name—'tv_xauusd_1h'или'mt_xauusd_m15';format—'pandas'|'dataframe'либо'dict'|'list'.Возвращает:
pandas.DataFrameилиList[Dict[str, Any]].
# Как DataFrame (по умолчанию)
df = get_sample_data('tv_xauusd_1h')
# Как список словарей
data = get_sample_data('tv_xauusd_1h', format='dict')
list_datasets()
Возвращает список всех доступных датасетов с основной информацией.
datasets = list_datasets()
# [{'name': 'tv_xauusd_1h', 'title': 'TradingView XAUUSD 1H', ...}, ...]
get_dataset_info(dataset_name)
Возвращает детальную информацию о конкретном датасете.
info = get_dataset_info('tv_xauusd_1h')
print(info['columns']) # Список колонок
print(info['period_start']) # Начало периода
validate_dataset(dataset_name)
Валидирует целостность и корректность данных.
result = validate_dataset('tv_xauusd_1h')
if result['is_valid']:
print("✅ Dataset is valid")
else:
print("❌ Errors:", result['errors'])
Дополнительные функции
get_sample_preview(dataset_name, n=5)
Возвращает первые n записей для предварительного просмотра.
preview = get_sample_preview('tv_xauusd_1h', 3)
for record in preview:
print(f"Time: {record['time']}, Close: {record['close']}")
find_datasets(symbol=None, timeframe=None, source=None)
Находит датасеты по заданным критериям.
# Все датасеты для XAUUSD
xauusd_data = find_datasets(symbol='XAUUSD')
# Все часовые данные
hourly_data = find_datasets(timeframe='1h')
# Все данные от TradingView
tv_data = find_datasets(source='TradingView')
compare_sample_datasets(dataset1, dataset2)
Сравнивает два датасета.
comparison = compare_sample_datasets('tv_xauusd_1h', 'mt_xauusd_m15')
print(f"Common columns: {comparison['common_columns']}")
print(f"Dataset 1 unique: {comparison['unique_columns']['tv_xauusd_1h']}")
print_sample_data_status()
Выводит статус всех sample данных.
print_sample_data_status()
# 🎯 BQuant Sample Data Status
# ================================
# 📊 TradingView XAUUSD 1H (tv_xauusd_1h)
# ...
🔧 Интеграция с BQuant
С индикаторами
from bquant.data.samples import get_sample_data
from bquant.indicators.macd import MACDZoneAnalyzer
# Загружаем данные
data = get_sample_data('tv_xauusd_1h')
# Используем с MACD анализатором
analyzer = MACDZoneAnalyzer()
result = analyzer.analyze_complete(data)
print(f"Found {len(result.zones)} MACD zones")
С визуализацией
from bquant.data.samples import get_sample_data
from bquant.visualization import FinancialCharts
# Загружаем данные
data = get_sample_data('tv_xauusd_1h')
# Создаем график
charts = FinancialCharts()
fig = charts.create_candlestick_chart(data, title="Sample XAUUSD Data")
fig.show()
С анализом
from bquant.data.samples import get_sample_data
from bquant.indicators.macd import MACDZoneAnalyzer
from bquant.analysis.statistical import run_all_hypothesis_tests
from bquant.analysis.zones.zone_features import ZoneFeaturesAnalyzer
# Загружаем данные
data = get_sample_data('tv_xauusd_1h')
# Анализируем MACD зоны
analyzer = MACDZoneAnalyzer()
result = analyzer.analyze_complete(data)
# Статистические тесты
features = ZoneFeaturesAnalyzer().extract_all_zones_features(result.zones)
zones_features = [feature.to_dict() for feature in features]
test_results = run_all_hypothesis_tests(zones_features)
for test_name, outcome in test_results["tests"].items():
print(f"{test_name}: p-value = {outcome['p_value']:.4f}")
📁 Структура данных
TradingView данные (tv_xauusd_1h)
{
'time': '2025-06-11T20:00:00+07:00',
'open': 3336.94,
'high': 3344.77,
'low': 3327.95,
'close': 3330.0,
'volume': 54323.0,
'accumulation_distribution': 6642770.32110492,
'macd': 1.9401445111593605,
'signal': 2.76537114439529,
'rsi': 47.8275212676637,
'rsi_based_ma': 55.23196702366443,
'regular_bullish': None,
'regular_bullish_label': '',
'regular_bearish': None,
'regular_bearish_label': ''
}
MetaTrader данные (mt_xauusd_m15)
{
'time': '2025-05-20T02:00:00',
'open': 2425.15,
'high': 2425.79,
'low': 2424.85,
'close': 2425.56,
'volume': 7.0,
'spread': 4.0
}
⚠️ Важные замечания
Лицензия и использование
Лицензия: Open data, свободно для исследований и образования
Disclaimer: Только для демонстрации. Не для production торговли
Источники: TradingView (OANDA), MetaTrader
Технические детали
Формат хранения: Embedded Python структуры (List[Dict])
Кодировка: UTF-8 для TradingView, Windows-1251 для MetaTrader
Размер в памяти: ~1-2 MB при загрузке в DataFrame
Числовые типы: float для всех числовых значений, None для NaN
Ограничения
Фиксированное количество записей (1,000 на датасет)
Только XAUUSD данные в текущей версии
Статические данные (обновляются вручную)
🔄 Обновление данных
# Обновить все датасеты
python scripts/data/extract_samples.py --extract-all
# Обновить конкретный датасет
python scripts/data/extract_samples.py --dataset tv_xauusd_1h
# Проверить доступность источников
python scripts/data/extract_samples.py --validate-sources
🧪 Тестирование
# Валидация всех датасетов
from bquant.data.samples import validate_dataset, list_dataset_names
for dataset_name in list_dataset_names():
result = validate_dataset(dataset_name)
if result['is_valid']:
print(f"✅ {dataset_name}: Valid")
else:
print(f"❌ {dataset_name}: {result['errors']}")
# Общий статус
from bquant.data.samples import print_sample_data_status
print_sample_data_status()
Обновлено: 2025-08-25
Версия BQuant: 1.0.0-dev
Общий размер: ~750 KB (2 датасета)