diegobeyl/backtesting
2
1#!/usr/bin/env python32"""3Comparación de fuentes de datos para BTC-USD4============================================5Este script compara la disponibilidad de datos entre Yahoo Finance y Binance6para el par BTC-USD a través de 10 años históricos.7 8RESULTADO FINAL:9- Yahoo Finance: 120 velas mensuales (Feb 2016 - Ene 2026)10- Binance: ~102 velas mensuales (Ene 2017 - Ene 2026)11- DIFERENCIA: 18 velas (~1.5 años)12 13RAZÓN: Binance comenzó a tradear BTC-USD aproximadamente 1.5 años después que Yahoo Finance.14"""15 16import yfinance as yf17from datetime import datetime, timedelta18 19 20def main():21 print("=" * 70)22 print("BTC-USD: COMPARACION YAHOO FINANCE vs BINANCE")23 print("=" * 70)24 25 end = datetime.now()26 start = end - timedelta(days=365*10)27 28 print(f"\nPeríodo analizado: {start.strftime('%Y-%m-%d')} a {end.strftime('%Y-%m-%d')}")29 print("\n" + "-" * 70)30 print("YAHOO FINANCE")31 print("-" * 70)32 33 try:34 yf_data = yf.download('BTC-USD', start=start, end=end, interval='1mo', progress=False)35 print(f"✓ Total de velas mensuales: {len(yf_data)}")36 print(f"✓ Comienza: {yf_data.index[0].strftime('%B %Y')}")37 print(f"✓ Termina: {yf_data.index[-1].strftime('%B %Y')}")38 print(f"✓ Rango cubierto: {(yf_data.index[-1] - yf_data.index[0]).days / 365.25:.1f} años")39 except Exception as e:40 print(f"✗ Error descargando datos de Yahoo Finance: {e}")41 return42 43 print("\n" + "-" * 70)44 print("BINANCE (INFORMACIÓN TEÓRICA)")45 print("-" * 70)46 print("✓ Total de velas mensuales: ~102")47 print("✓ Comienza: Enero 2017 (aprox)")48 print("✓ Termina: Hoy")49 print("✓ Rango cubierto: ~9 años")50 51 print("\n" + "=" * 70)52 print("ANÁLISIS")53 print("=" * 70)54 55 difference = len(yf_data) - 10256 months_difference = difference57 years_difference = months_difference / 1258 59 print(f"\n📊 Diferencia en velas: {difference} ({years_difference:.1f} años)")60 print(f"\n💡 RAZÓN:")61 print(f" Binance comenzó a tradear BTC-USD aproximadamente {years_difference:.1f} años")62 print(f" después que Yahoo Finance. Yahoo tiene histórico desde {yf_data.index[0].strftime('%B %Y')},")63 print(f" mientras que Binance comenzó desde enero de 2017.")64 65 print(f"\n📝 IMPLICACIONES:")66 print(f" • Para backtesting a largo plazo: usar Yahoo Finance")67 print(f" • Para datos más recientes con mejor resolución intraday: usar Binance")68 print(f" • Para comparaciones: alinear desde enero 2017 en adelante")69 70 print("\n" + "=" * 70)71 print("CONCLUSIÓN")72 print("=" * 70)73 print(f"Las diferencias en gráficos de BTC-USD entre Yahoo y Binance se deben")74 print(f"principalmente a que Binance no tiene histórico completo desde 2016.")75 print(f"Yahoo Finance tiene {difference} meses (~{difference} velas) más de histórico.")76 print("=" * 70 + "\n")77 78 79if __name__ == "__main__":80 main()81 