FB-008: close_trade mixes price and tick; stale exits are silent (zero-P&L fallback) [silent-wrong]
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 70/100
Línea de trabajo
Start in strategy.py at the cited lines 231 and 245, then trace get_price and the trade fields used by close_trade. Check existing tests for stale prices, fill-forward behavior, and no-price exits. Done means one tick source is used, the exit lag is recorded, and an optional maximum lag is enforced with tests covering the stated cases.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Severity: silent-wrong · Source: BUGS_FASTBT.md (2026-10-09; seen in skill trial 11)
- The price is read at
ctx.tick(strategy.py:231), but the trade is stamped with thetickargument (strategy.py:245). A caller passing a different tick records a price from one time against another. - The lag returned by
get_priceis discarded, so a fill-forward exit of any age is accepted: from yesterday's close, or from a contract with no bars left. - With no price at all, the exit price falls back to the entry price (zero P&L) with only a
logger.warning.
Observed: on the stale 2025-11-27 monthly gap, the fill-forward and live-only variants exit differently.
Workaround: check the lag before closing; pin the ffill-vs-live exit policy.
Fix: use one tick source; store exit_lag on the trade; add an optional max_exit_lag.
- Lenguaje dominante
- Python
- Estrellas
- 28
- Forks
- 17
- Merge medio
- 5 h 7 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de uberdeveloper/fastbt
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
uberdeveloper/fastbt#29 · 2 comentarios ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
uberdeveloper/fastbt#31 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
uberdeveloper/fastbt#30 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
uberdeveloper/fastbt#28 ·
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
uberdeveloper/fastbt#26 ·
Todos los issues de uberdeveloper/fastbt
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
task
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
danparshall/claude_researcher#87 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
datajoint/datajoint-python#1586 ·
Los mantenedores suelen responder en 1 día
-
1D intercept of length 1 is accepted as `fix_params` in population GLM with more than 1 unitPosiblemente ocupada @dhvani7014 la tomó hoy. Abiertobug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
flatironinstitute/nemos#642 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Broken links in the docsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
uniswap-python/uniswap-python#487 ·