𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #𝟬𝟯𝟮: 𝗟𝗶́𝗺𝗶𝘁𝗲 𝗱𝗲 𝗳𝗶𝗷𝗮𝗰𝗶𝗼́𝗻 𝗱𝗲 𝗽𝗿𝗲𝗰𝗶𝗼𝘀 𝗱𝗲𝗹 𝗼𝗯𝗷𝗲𝘁𝗶𝘃𝗼 𝗱𝗲 𝗼𝗽𝗰𝗶𝗼𝗻𝗲𝘀
QuantConnect Lean tenía un error grave en el dimensionamiento del objetivo de opciones.
Si solicitabas un objetivo del 10% para una posición en opciones, el motor podía entregar más de lo solicitado.
Esto ocurría porque el sistema utilizaba el precio incorrecto para calcular la cantidad. Utilizaba un precio medio (mid) o el último precio (last) en lugar del precio real que debes pagar para comprar la opción.
Cuando el diferencial (spread) entre el bid y el ask es amplio, este error aumenta.
El motor utilizaba security.Price para los cálculos de margen. Para una opción larga (long), debes comprar al precio ask. Si el motor calcula el dimensionamiento basándose en un precio medio más bajo, tu posición final excederá tu peso objetivo una vez que la orden se ejecute.
Identificamos el límite exacto de la reparación.
No reescribimos todo el motor de construcción de carteras. No cambiamos el funcionamiento de cada tipo de valor. No cambiamos la capa de ejecución.
En su lugar, corregimos la ruta de fijación de precios de margen específica para opciones.
La corrección sigue estas reglas:
- Para objetivos de opciones largas: Utilizar el precio ask cuando esté disponible.
- Para objetivos de opciones cortas: Utilizar el precio bid cuando esté disponible.
- Si no hay una cotización disponible: Recurrir al precio last/mark existente.
Esto mantiene la reparación de forma local y segura. Utiliza mejores datos cuando existen, pero preserva el comportamiento anterior cuando no es así.
Resultados de la validación:
- La compilación de la versión (release build) fue exitosa.
- Pruebas enfocadas en el margen de opciones: 41/41 superadas.
- Se añadió cobertura de regresión tanto para la fijación de precios ask en el lado largo como para la fijación de precios bid en el lado corto.
Esta corrección garantiza que el motor respete tu contrato de riesgo al utilizar precios ejecutables para el dimensionamiento.
Comunidad de aprendizaje opcional: https://t.me/GyaanSetuAi