docs: update backtesting research, optimizer, ADX and visual analysis

This commit is contained in:
DaM
2026-01-28 16:24:34 +01:00
parent 1add69eb56
commit e15074c0a7
10 changed files with 396 additions and 408 deletions

46
tests/dam_test.py Normal file
View File

@@ -0,0 +1,46 @@
# dam_test.py
"""
Script para probar el optimizador de parámetros
"""
import os
import sys
from dotenv import load_dotenv
from pathlib import Path
# Añadir raíz del proyecto al path
sys.path.insert(0, str(Path(__file__).parent.parent))
from src.data.storage import StorageManager
def setup_environment():
"""Carga variables de entorno"""
env_path = Path(__file__).parent.parent / 'config' / 'secrets.env'
load_dotenv(dotenv_path=env_path)
def dam_test():
# Setup
setup_environment()
# Cargar datos
storage = StorageManager(
db_host=os.getenv('DB_HOST'),
db_port=int(os.getenv('DB_PORT', 5432)),
db_name=os.getenv('DB_NAME'),
db_user=os.getenv('DB_USER'),
db_password=os.getenv('DB_PASSWORD'),
)
data = storage.load_ohlcv(
symbol='BTC/USDT',
timeframe='1h',
start_date=None,
end_date=None,
use_cache=False
)
print(data.columns)
print(data[['close', 'adx']].tail(10))
if __name__ == "__main__":
dam_test()

View File

@@ -42,14 +42,14 @@ def test_optimizer():
)
log.info("\n📥 Cargando datos...")
end_date = datetime.now()
start_date = end_date - timedelta(days=60)
# end_date = datetime.now()
# start_date = end_date - timedelta(days=60)
data = storage.load_ohlcv(
symbol='BTC/USDT',
timeframe='1h',
start_date=start_date,
end_date=end_date,
start_date=None,
end_date=None,
use_cache=False
)
@@ -66,9 +66,11 @@ def test_optimizer():
# Definir parámetros a probar (pequeño para empezar)
param_grid = {
'fast_period': [5, 10, 15],
'fast_period': [10, 15],
'slow_period': [30, 50],
'ma_type': ['sma', 'ema']
'ma_type': ['sma', 'ema'],
'use_adx': [True],
'adx_threshold': [20, 25, 30]
}
log.info(f"\n📊 Grid de parámetros:")

View File

@@ -43,14 +43,14 @@ def test_visualizer():
)
log.info("\n📥 Cargando datos...")
end_date = datetime.now()
start_date = end_date - timedelta(days=60)
# end_date = datetime.now()
# start_date = end_date - timedelta(days=60)
data = storage.load_ohlcv(
symbol='BTC/USDT',
timeframe='1h',
start_date=start_date,
end_date=end_date,
start_date=None,
end_date=None,
use_cache=False
)
@@ -58,7 +58,13 @@ def test_visualizer():
# Ejecutar backtest
log.info("\n🧪 Ejecutando backtest...")
strategy = MovingAverageCrossover(fast_period=15, slow_period=50, ma_type='sma')
strategy = MovingAverageCrossover(
fast_period=15,
slow_period=50,
ma_type='sma',
use_adx=True,
adx_threshold=30
)
engine = BacktestEngine(
strategy=strategy,