Un árbol de decisión para situar tu idea en un tipo, y qué reglas bloquea de verdad el código.
¿Es «un símbolo, un intervalo fijo, una posición (largo / corto / plana)»? Sí → Tipo A (de señal).
¿Es «una cesta de símbolos, cada uno con un peso, que rota y se repondera por períodos»? Sí → Tipo C (de cartera).
El resto (screeners, grid, arbitraje, ejecuciones puntuales, bots de alertas) → Tipo B.
Cuando A y C se confunden, mira que se cumplan dos cosas a la vez: cuántos símbolos (uno o varios) y la forma de la posición (una sola posición larga/corta/plana frente a un conjunto de pesos). La rotación entre varios símbolos y el rebalanceo de cartera son Tipo C, no Tipo B.
| Elemento | Tipo A de señal | Tipo C de cartera | Tipo B el resto |
|---|---|---|---|
| Símbolos | 1 | N | Sin límite |
| Forma de la posición | Una posición, puede ser fraccionaria | Vector de pesos, por diseño suma ≤ 1 | Sin forma fija |
| Plantilla | Sí | Sí | Ninguna, se escribe desde cero |
| Backtest | El agente siempre corre uno primero | El agente siempre corre uno primero | No se corre |
| Trading automático | Admitido | Asignar monto todavía no admitido | Escribes tú la lógica de órdenes |
| Informe de backtest | Completo, con Sortino, Omega y valor p de MCPT | Más ligero: sin Sortino / Omega, sin MCPT automático | Ninguno |
Porque no existe. Los tres tipos son una clasificación al escribir la estrategia, no un estado que el sistema siga.
En la máquina, el tipo sale de lo que devuelve la función de señal: si devuelve una serie toma el camino del Tipo A, si devuelve una matriz de pesos toma el del Tipo C, y no se lee ninguna constante de tipo. En la plataforma el tipo se deduce hacia atrás de la forma del resultado del backtest, y el único sitio donde un tipo sale al exterior lleva solo dos valores: «cartera» y «señal».
Por eso el sistema no separa un Tipo B de un Tipo A al que todavía le falta el backtest. Elegir mal el tipo no se bloquea ni se marca: tipificar sirve para que el agente elija la forma de código y las comprobaciones que tocan, no para que el sistema lo siga por ti.
La función de señal devuelve un número en cada vela (cada período):
| Valor devuelto | Significado |
|---|---|
Positivo (1.0, 0.6…) | Largo; el número es la fracción de la posición |
Negativo (-1.0, -0.6…) | Corto; el número es la fracción de la posición |
0.0 | Cerrar la posición |
nan | Mantener la posición actual sin cambios |
La señal se ejecuta en la apertura de la vela siguiente; la salida por liquidación de futuros se ejecuta en el cierre de esa misma vela.
El número no se recorta: 0.5 es media posición, 2.0 es apalancamiento doble, y el código lo calcula así. El volatility targeting produce señales fraccionarias por sí mismo, y su techo de exposición es el valor por defecto de un parámetro, no un límite del sistema.
Un Tipo A ya pasado por backtest puede entrar en la cartera de trading automático: le asignas un monto en Configuración de trading y la estrategia escribe su estado de posición; después el conciliador suma los objetivos de todas las estrategias y ajusta posiciones en el exchange (ver Portafolio de trading en real). Una estrategia sin monto no recibe ninguna orden.
La función de señal devuelve una matriz de pesos (el peso objetivo de cada símbolo en cada momento) más los datos de precio correspondientes. El rebalanceo puede ser diario, semanal o mensual y lo implementa la propia estrategia — los dos ejemplos ya hechos (un z-score de compra neta extranjera que elige entre 100 acciones taiwanesas, y un momentum Top-30) rebalancean semanalmente.
Que los pesos sumen ≤ 1 es un acuerdo de diseño, y el código no lo comprueba. Una suma por encima de 1 no da error; entra directa en el rendimiento como apalancamiento.
Hoy el Tipo C no admite asignar capital a la cartera de trading automático. La causa de raíz es que el camino no existe: una estrategia Tipo C no escribe archivo de estado de posición, el conciliador no la ve, y el capital que le asignes tampoco produce órdenes. El espacio de trabajo inhabilita el campo de monto del Tipo C, pero toma el backtest de un Tipo C como algo para leer y compartir, no como algo que financiar.
El Tipo C tampoco tiene MCPT automático: ese contraste es una serie de precios contra una serie de posiciones, una cartera tiene varias, y aplastarlas en una equivale a remuestrear el rendimiento ya realizado. La biblioteca de estrategias marca esta comprobación como «no aplicable», que no es lo mismo que suspendida.
El Tipo B no tiene plantilla, se escribe desde cero y no corre backtest. Y una estrategia solo llega a la lista de selección del trading automático con un resultado de backtest no vacío, así que el Tipo B nunca aparece ahí.
Aun así opera: llama por su cuenta a las librerías de órdenes ya hechas y se programa él mismo. Blave Agent no es un producto de «solo señales, sin ejecutar»: el Tipo A pasa por la conciliación del trading automático y el Tipo B envía sus propias órdenes.
| Elemento | Comportamiento real |
|---|---|
Fecha de fin del backtest sin devolver a None | Se niega a correr el backtest |
| Estrategia de futuros TAIEX sin la máscara de liquidación | Se niega a correr el backtest |
| La función de señal no existe, o no devuelve nada | Se niega a correr el backtest |
| Comisión puesta a 0, o escrita como una expresión | Se marca como problema y sigue corriendo |
| Un Tipo A de indicador que no declara la serie a dibujar | Aviso, y sigue corriendo |
| Pesos del Tipo C que suman por encima de 1 | No se comprueba; cuenta directo como apalancamiento |
Las tres filas de abajo son convenciones, no barreras. El agente te avisa según la norma, pero detrás no hay código que vigile — por eso mismo las comprobaciones de evitar el sobreajuste acaban dependiendo de que tú decidas hacerlas.
| Lo que crees | Lo real |
|---|---|
| La rotación entre varios símbolos es Tipo B | Repartir pesos y rebalancear por períodos lo hace Tipo C |
| Un Tipo C que pasó el backtest ya puede operar en automático | El backtest está para ver el rendimiento; hoy no hay camino para asignarle capital |
| El informe de backtest trae tasa de acierto | No hay campo de tasa de acierto; la sacas tú del detalle de entradas y salidas operación a operación, y el informe de backtest de un Tipo C no trae ese detalle (ver Cómo leer un backtest) |
| Si eliges mal el tipo, el sistema te bloquea | No lo hace: la plataforma no puede guardar un tipo; elegir mal solo te deja con una forma de código y unas comprobaciones que no encajan |
Con el tipo claro, lo siguiente es verlo funcionando. Las estrategias oficiales de la Biblioteca de estrategias vienen con un backtest real y el período indicado, y se leen gratis; elegir una y ponerla a correr te dice qué tipo quieres escribir más rápido que terminar esta página.