Team Ai
Apppublic

diegobeyl/backtesting

sourceHugging Faceupdated 9mo agoView on Hugging Face
2likes
compare_data_sources.py81 linesDownload Raw Back to analysis
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