Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

FB-002: multi-day ticks break every time comparison; ctx.time is wrong [silent-wrong]

Abierto
#21 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
71/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python

Línea de trabajo

Start in context.py at advance() around line 203, then read the composite key construction in engine.py:171 and context.py:63. Check how multi-day ticks set ctx.time and compare the behavior across day and expiry modes. Done means time comparisons and the can_enter example work in both modes, with ctx.clock and ctx.date consistent; add or run focused tests for those cases.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

Severity: silent-wrong · Source: BUGS_FASTBT.md (2026-10-09; consolidation B04 2026-10-11)

Composite keys are f"{d} {time_key}" (engine.py:171, context.py:63), and d already carries 00:00:00, so a tick is "2025-07-04 00:00:00 09:20:59". advance() splits on the first space (context.py:203), so ctx.date is right but ctx.time == "00:00:00 09:20:59".

Any code written for day mode then misbehaves without an error:

  • tick >= "15:20:00" is always True → exit_time exit fires on the tick right after entry
  • "09:20:00" <= tick < "09:30:00" is never True → strategy never enters
  • The can_enter docstring example (strategy.py:451) is this exact bug

Seen in this repo: positionals/iron_condor.py, credit_spread.py, credit_spread_v2.py compare ctx.time in period="expiry" mode and never enter.

Workaround: read the clock as str(tick)[-8:] and the date as str(tick)[:10]; use exit_time=None.
Fix: build keys from d[:10]; add ctx.clock ("HH:MM:SS") and ctx.date that behave the same in every mode.

Lenguaje dominante
Python
Estrellas
28
Forks
17
Merge medio
8 h 50 min
PR fusionados (30 d)
2

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de uberdeveloper/fastbt

Todos los issues de uberdeveloper/fastbt

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.