Step optimization backtest estimate can disagree with the enumerated grid

Abierto Apto para principiantes
#10,047 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
csharp
Área
backend, testing

Línea de trabajo

Empieza con StepBaseOptimizationStrategy.Estimate y OptimizationStepParameterEnumerator; después, localiza sus pruebas unitarias existentes en la suite de pruebas de optimización. Compara la estimación con el número de conjuntos de parámetros generados para los valores de mínimo, máximo y paso indicados, y añade la aserción de regresión. La tarea está terminada cuando la estimación coincide con el número enumerado, incluido el ejemplo de punto flotante del issue.

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

Descripción

Problem

StepBaseOptimizationStrategy.Estimate counts a step parameter's values as

(int)Math.Floor((MaxValue - MinValue) / Step.Value) + 1

while OptimizationStepParameterEnumerator walks MinValue + i * Step <= MaxValue. When the inputs are not exactly representable on the grid, the two can disagree, so GetTotalBacktestEstimate reports a different number of backtests from the number that run.

Seen in the cloud: min 0.10000000000000001, max 0.29999999999999999, step 0.050000000000000003 (float noise from the API, fixed separately in the API repo) gives an estimate of 4 values for a 0.1..0.3 / 0.05 parameter. With a second parameter at 5 values, the wizard showed 20 backtests for a 25-backtest grid.

Expected

Estimate returns the same count the enumerator produces for any min / max / step. For example, compute the count the same way the enumerator does, or round the quotient to a tolerance before Floor. Add a unit test with values like the ones above that asserts the estimate equals the number of enumerated parameter sets.

Lenguaje dominante
C#
Estrellas
22.4k
Forks
5.4k
Merge medio
1 d 22 h
PR fusionados (30 d)
55

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

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 QuantConnect/Lean

Todos los issues de QuantConnect/Lean

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.