diegobeyl/backtesting
2
1#!/usr/bin/env python32"""Test para verificar cuántas velas retorna el DataLoader con 1mo timeframe"""3import sys4import os5sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))6 7from datetime import datetime, timedelta8from backtesting_app.core import DataLoader9from backtesting_app.core.validator import DataValidator10 11# Test con 10 años y timeframe 1 mes12print("="*70)13print("TEST: 10 años con timeframe 1 mes (1mo)")14print("="*70)15 16start_date = (datetime.now() - timedelta(days=365*10)).strftime('%Y-%m-%d')17end_date = datetime.now().strftime('%Y-%m-%d')18 19print(f"\nFecha inicio: {start_date}")20print(f"Fecha fin: {end_date}")21print(f"Período: 10 años")22 23# Primero validar que está permitido24is_valid, error = DataValidator.validate_request('BTC-USDT', '1mo', 25 datetime.now() - timedelta(days=365*10),26 datetime.now())27 28print(f"\n✓ Validación: {'VÁLIDO ✅' if is_valid else f'INVÁLIDO ❌\n{error}'}")29 30if is_valid:31 print(f"\n⏳ Descargando datos...")32 try:33 df = DataLoader.download(34 symbol='BTC-USDT',35 interval='1mo',36 start_date=start_date,37 end_date=end_date,38 source='yahoo'39 )40 41 if df is not None:42 print(f"✅ Datos descargados: {len(df)} velas")43 print(f" Primero: {df.index[0]}")44 print(f" Último: {df.index[-1]}")45 print(f"\n Primeras 5 filas:")46 print(df.head())47 else:48 print("❌ DataLoader retornó None")49 except Exception as e:50 print(f"❌ Error: {e}")51 import traceback52 traceback.print_exc()53 