Skip to content

Latest commit

 

History

History
257 lines (203 loc) · 7.78 KB

File metadata and controls

257 lines (203 loc) · 7.78 KB

CSV Data Loader - Инструкция по использованию

🚀 Быстрый старт

1. Запуск Jesse сервера

# В первом терминале
cd /Users/alxy/Desktop/1PROJ/JesseLocal/jesse
jesse run

2. Быстрый тест

# Во втором терминале
cd /Users/alxy/Desktop/1PROJ/JesseLocal/jesse
python quick_test.py

📋 Доступные скрипты

1. quick_test.py - Быстрый тест

Проверяет базовую функциональность:

  • Получение списка символов
  • Информацию о символах
  • Предварительный просмотр данных
  • Импорт одного символа
python quick_test.py

2. csv_ticks_to_db.py - Основной загрузчик

Полнофункциональный загрузчик с различными режимами:

# В Jupyter или Python скрипте
from jesse.research.external_data.csv_ticks_to_db import *

# Быстрый предварительный просмотр
quick_preview()

# Загрузить образец данных (10 символов)
load_sample_data()

# Загрузить все данные
load_all_data_full()

# Загрузить конкретные символы
load_specific_symbols(["ACH", "CAS", "DOGS"])

# Загрузить данные за период
load_custom_date_range()

3. batch_csv_loader.py - Пакетная загрузка с прогресс-баром

python batch_csv_loader.py

🔧 Настройка

Изменение настроек в csv_ticks_to_db.py:

# Настройки подключения
AUTHORIZATION = "ваш_токен_авторизации"
BASE_URL = "http://localhost:9000"

# Настройки загрузки
def load_all_data(
    timeframe: str = "1m",           # Таймфрейм
    max_symbols: int = None,         # Максимум символов
    start_date: str = None,          # Начальная дата "2023-01-01"
    finish_date: str = None,         # Конечная дата "2023-12-31"
    preview_only: bool = False       # Только просмотр
):

Изменение настроек в batch_csv_loader.py:

settings = {
    'timeframe': '1m',        # Таймфрейм
    'max_symbols': 50,        # Максимум символов
    'start_date': None,       # Начальная дата
    'finish_date': None,      # Конечная дата
    'batch_size': 5,          # Размер батча
    'delay': 0.2              # Задержка между запросами
}

📊 Мониторинг загрузки

Статистика в реальном времени

  • Количество обработанных символов
  • Успешные/неудачные импорты
  • Общее количество свечей
  • Скорость загрузки

Файлы статистики

  • batch_loader_stats.json - Детальная статистика загрузки

🎯 Примеры использования

Загрузка всех данных

from jesse.research.external_data.csv_ticks_to_db import load_all_data_full
load_all_data_full()

Загрузка данных за 2023 год

from jesse.research.external_data.csv_ticks_to_db import load_all_data
load_all_data(
    start_date="2023-01-01",
    finish_date="2023-12-31"
)

Загрузка только топ-10 символов

from jesse.research.external_data.csv_ticks_to_db import load_all_data
load_all_data(max_symbols=10)

Загрузка конкретных символов

from jesse.research.external_data.csv_ticks_to_db import load_specific_symbols
load_specific_symbols(["ACH", "CAS", "DOGS", "READY"])

🔍 Отладка

Проверка подключения

from jesse.research.external_data.csv_ticks_to_db import CSVDataLoader, BASE_URL, AUTHORIZATION

loader = CSVDataLoader(BASE_URL, AUTHORIZATION)
symbols = loader.get_available_symbols()
print(f"Доступно символов: {len(symbols)}")

Проверка конкретного символа

symbol = "ACH"
info = loader.get_symbol_info(symbol)
print(f"Информация о {symbol}: {info}")

preview = loader.preview_data(symbol, limit=5)
print(f"Предварительный просмотр: {preview}")

Проверка загруженных данных

candles = loader.get_candles("ACH", "1m", limit=10)
print(f"Загружено свечей: {candles['count']}")

⚠️ Устранение неполадок

Ошибка подключения

❌ Ошибка получения символов: Connection refused

Решение: Убедитесь, что Jesse сервер запущен на http://localhost:9000

Ошибка авторизации

❌ Ошибка получения символов: 401 Unauthorized

Решение: Обновите токен авторизации в скрипте

Ошибка импорта

❌ Ошибка импорта ACH: 500 Internal Server Error

Решение: Проверьте логи Jesse сервера, возможно проблема с базой данных

Недостаточно памяти

❌ MemoryError

Решение:

  • Уменьшите max_symbols
  • Увеличьте delay между запросами
  • Используйте start_date и finish_date для ограничения данных

📈 Оптимизация производительности

Для больших объемов данных:

  1. Используйте batch_csv_loader.py с настройками:

    'batch_size': 3,      # Меньшие батчи
    'delay': 0.5,         # Больше задержка
    'max_symbols': 100    # Ограничение символов
  2. Загружайте данные по периодам:

    # 2023 год
    load_all_data(start_date="2023-01-01", finish_date="2023-12-31")
    
    # 2024 год
    load_all_data(start_date="2024-01-01", finish_date="2024-12-31")
  3. Используйте разные таймфреймы:

    # Сначала 1m для основных символов
    load_specific_symbols(["ACH", "CAS"], "1m")
    
    # Потом 5m для остальных
    load_all_data(timeframe="5m", max_symbols=50)

🎉 После загрузки

Использование в бэктесте:

# В конфигурации бэктеста
routes = [
    {
        "exchange": "custom",
        "symbol": "ACH",
        "timeframe": "1m",
        "strategy": "YourStrategy"
    }
]

Проверка загруженных данных:

from jesse.services.csv_data_provider import csv_data_provider

# Получить свечи
candles = csv_data_provider.get_candles("ACH", "1m")
print(f"Загружено {len(candles)} свечей для ACH")

📝 Логи

Логи Jesse сервера:

tail -f storage/logs/jesse.log

Логи загрузки:

  • Консольный вывод с прогресс-баром
  • batch_loader_stats.json - детальная статистика

🆘 Поддержка

При возникновении проблем:

  1. Проверьте логи Jesse сервера
  2. Убедитесь в правильности токена авторизации
  3. Проверьте доступность CSV файлов
  4. Используйте quick_test.py для диагностики