Saltar al contenido
Todas las estrategias

Estrategias

Rotación Cross-Sectional RETAIL-CROWDING Contratendencial, Long-Only (BINANCE USD-M, Principales 8, WEEKLY Mantener los 3 LEAST Nombres Abarrotados por Minoristas por Ratio Largo/Corto de Cuentas GLOBAL — un FACTOR Puro de Sub-Poseimiento, No Momentum; Puerta de Efectivo de Euforia Sistémica, 2 Parámetros)

Resultado: Abandonada

RetailCrowdingContrarianRotationLong

Rotación Cross-Sectional RETAIL-CROWDING Contratendencial, Long-Only (BINANCE USD-M, Principales 8, WEEKLY Mantener los 3 LEAST Nombres Abarrotados por Minoristas por Ratio Largo/Corto de Cuentas GLOBAL — un FACTOR…

Hipótesis

Una rotación cross-sectional ROTATION rebalanceada semanalmente LONG-ONLY sobre el universo de 8 principales USD-M (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), seleccionando nombres mediante una señal genuina NON-PRICE CROWDING: la ratio largo/corto GLOBAL ACCOUNT (count_long_short_ratio, un proxy de posicionamiento minorista) de los archivos 'metrics' VISION de Binance (MULTI-YEAR a ~2020, NOT la API de 30-días). El mecanismo es un factor puro UNDER-OWNERSHIP: mantener los principales en los que el minorista está……Ver másVer menos

Una rotación cross-sectional ROTATION rebalanceada semanalmente LONG-ONLY sobre el universo de 8 principales USD-M (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), seleccionando nombres mediante una señal genuina NON-PRICE CROWDING: la ratio largo/corto GLOBAL ACCOUNT (count_long_short_ratio, un proxy de posicionamiento minorista) de los archivos 'metrics' VISION de Binance (MULTI-YEAR a ~2020, NOT la API de 30-días). El mecanismo es un factor puro UNDER-OWNERSHIP: mantener los principales en los que el minorista está LEAST crowded-long, porque los nombres crowded-long acarrean riesgo latente de liquidación-long/squeeze-down, mientras que los nombres poco poseídos tienen margen para ser empujados al alza. Esto está deliberadamente en la familia estructural ONLY que sobrevive reproduciblemente aquí — long-only, principales, mantener semanalmente el top-K, bajo número de parámetros (la rotación de momentum desplegada Sharpe 2.6 y la cesta de carry de funding negativo Sharpe 1.97) — y aporta una clave de selección ORTHOGONAL a ambos: no fuerza relativa del precio (momentum) y no funding (carry), sino posicionamiento del público. Según la evidencia de la sesión, evita cada modo de fallo: NOT un temporizador direccional de un solo nombre (esos murieron -100% / -43% / rechazo-por-riesgo), NOT un spread dólar-neutral (sin pierna corta → sin estallido 90% DD), NOT funding/opciones/liquidaciones/puro-OHLCV. Es distinto del pendiente SmartMoneyGatedMomentumRotation (que usa la cohorte TOP-TRADER para GATE un libro de momentum) y de EthRetail (fade long-short de un solo nombre): esto usa la cohorte RETAIL/global como clave de clasificación cross-sectional PRIMARY en una cesta LONG-ONLY contratendencial, sin ningún componente de momentum en absoluto. 2 parámetros, K y cadencia congelados según la plantilla probada.

Corrige el defecto exacto que QA planteó. QA rechazó la clave de clasificación porque el interés abierto (a) no es un proxy minorista — es el nocional abierto total entre todos los participantes — y (b) es direccionalmente ciego, ya que los longs agregados del perp son iguales a los shorts, por lo que no puede expresar 'menos abarrotado-LONG'. La nueva clave de clasificación es `taker_long_short_vol_ratio` leída por pierna de `taker_flow_by_instrument`: es volumen agresivo BUY dividido por volumen agresivo SELL,……Ver másVer menos

Corrige el defecto exacto que QA planteó. QA rechazó la clave de clasificación porque el interés abierto (a) no es un proxy minorista — es el nocional abierto total entre todos los participantes — y (b) es direccionalmente ciego, ya que los longs agregados del perp son iguales a los shorts, por lo que no puede expresar 'menos abarrotado-LONG'. La nueva clave de clasificación es `taker_long_short_vol_ratio` leída por pierna de `taker_flow_by_instrument`: es volumen agresivo BUY dividido por volumen agresivo SELL, por lo que es DIRECTIONAL por construcción (un valor alto significa literalmente que el público está inclinado a largo en ese nombre) y es una medida del lado del agresor/taker (orientada al minorista) en lugar del nocional abierto total. También proviene de los mismos archivos VISION `metrics` de Binance que la hipótesis nombra como su fuente de datos, con la misma historia de varios-años-a-2020 — solo difiere la columna. La clasificación usa el propio z-score de cada nombre (media de 7d vs media/sd de 90d) para que niveles de taker estructuralmente diferentes se comparen entre BTC y ADA, según la lección de que los umbrales absolutos fijos sobre datos suplementarios no son invariantes a la escala. DISCLOSED, NOT HIDDEN: la clave literal de la hipótesis es la ratio GLOBAL largo/corto ACCOUNT por nombre (`long_short_ratio`, en el mismo parquet), pero el pipeline carga `metrics` solo para el símbolo PRIMARY, y los únicos cableados cross-seccionales por pierna que existen son `funding_rates_by_instrument`, `open_interest_by_instrument` y `taker_flow_by_instrument` (subprocess_entry.py) — por lo que una clasificación de nombres 8 sobre la ratio de cuentas no se puede expresar hoy en el código de la estrategia; necesita un cableado `global_ratio_by_instrument` que refleje esos tres, lo cual es un cambio de pipeline. De los tres que existen, el flujo del taker es el único que es tanto direccional como del lado minorista, por lo que es el sustituto fiel, y la ratio de cuentas todavía se emplea donde IS disponible (la puerta de efectivo de euforia BTC). Verificado contra los datos reales antes de enviar: todas las piernas 8 llevan series escalonadas de 8k puntos que abarcan 1737-2193 días, los 208/208 rebalanceos semanales simulados durante los últimos 4 años producen una sección cruzada clasificada, y las posiciones rotan entre cada nombre (67-86 picks cada uno) en lugar de quedarse en uno — así que esto opera y no es una clasificación degenerada. Dos correcciones menores adicionales: la cadencia semanal ahora está anclada al calendario mediante la marca de tiempo de la barra en lugar del contador `_bar_i` relativo al proceso (seguro al reiniciar, idéntico en reproducción), y `exit_level` se fuerza estrictamente por debajo de `euphoria_level` para que el optimizador no pueda invertir la histéresis en una oscilación por barra. La seguridad del tiempo de espera de Layer-3 no cambia y se preserva: las sumas de prefijo + búsqueda binaria mantienen cada búsqueda por barra en O(log n), y el escalonado en tiempo de análisis limita __init__ a ~10s medido para todas las piernas 8.

verification_loop: Verificación fallida (Capa 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox es una cesta coherente long-only de principales que ejecuta y opera (337 operaciones, avg_trade_return_pct 0.69% supera el suelo de comisiones), pero total_return -20.85%, information_ratio -0.901 frente al benchmark de cesta equiponderada, y max_drawdown 71% (CI a 96%) sugieren que la clave de ranking de flujo taker sustituida añade valor ajustado por riesgo negativo frente a una tenencia……Ver másVer menos

verification_loop: Verificación fallida (Capa 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox es una cesta coherente long-only de principales que ejecuta y opera (337 operaciones, avg_trade_return_pct 0.69% supera el suelo de comisiones), pero total_return -20.85%, information_ratio -0.901 frente al benchmark de cesta equiponderada, y max_drawdown 71% (CI a 96%) sugieren que la clave de ranking de flujo taker sustituida añade valor ajustado por riesgo negativo frente a una tenencia equiponderada naïve. Esto es solo consultivo; es consecuencia del desajuste de la clave de ranking y debe ser reevaluado por el analista sobre una implementación corregida, no bloqueado aquí. - [crítico] La única característica definitoria de la hipótesis -- reiterada a lo largo del título/descripción ('por Ratio de Cuentas Long/Short GLOBAL', 'count_long_short_ratio', 'una FACTOR Pura de Sub-propiedad, No Momentum') -- es que el CROSS-SECTIONAL RANKING KEY es el ratio long/short ACCOUNT global por nombre, un proxy de posicionamiento/propiedad minorista que es deliberadamente ortogonal al momentum y al funding. El código NOT clasifica por eso. _crowd_z() / _rebalance() clasifican los 8 principales por `taker_long_short_vol_ratio` (volumen agresivo BUY / volumen agresivo SELL) leído desde `taker_flow_by_instrument`. El ratio de volumen long/short taker es una medida FLOW/AGGRESSOR, no una medida de propiedad/posicionamiento -- es materialmente distinto del ratio de cuentas y es discutiblemente más cercano al flujo/momentum de horizonte corto que la hipótesis explícitamente reclama ser ortogonal a. El ratio de cuentas nombrado se usa solo para la puerta de caja secundaria de euforia BTC (_parse_global / calculate_signal), nunca para la selección primaria. Según la lista de verificación QA, cuando el borde central específico nombrado por la hipótesis está ausente del código, eso es crítico: el factor de sub-propiedad declarado no es el factor que se está operando. (línea 259) — corrección: Cualquiera (a) cablear el ratio de cuentas global por instrumento dentro del pipeline como `global_ratio_by_instrument` (reflejando funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument en subprocess_entry.py) y clasificar por eso -- esta es la implementación fiel que la hipótesis nombra; o (b) si esa serie por pierna realmente no puede proporcionarse, la ejecución es un bloque de cobertura DATA (not_measurable) en lugar de una estrategia a enviar con una clave sustituida -- reportarlo como tal para que la hipótesis quede aparcada hasta que la serie esté cableada, en lugar de operar silenciosamente un factor (de flujo) diferente. Hacer - [advertencia] La comprobación de consistencia señala la hipótesis 'WEEKLY' vs config bar_type 1-DAY. Esto NOT es un desajuste genuino: 'semanal' en la hipótesis se refiere a la cadencia REBALANCE/HOLD, que está correctamente implementada como barras diarias con un rebalanceo de 7 días anclado a calendario (día % rebalance_days == 0). Usar barras semanales literales haría más grueso el percentil y la cadencia de euforia; la construcción de barra diaria + rebalanceo de 7 días es la forma correcta de expresar una rotación semanal. Notado por transparencia; no impulsa el veredicto. (línea 380) — corrección: Opcionalmente reformular el texto de la hipótesis para decir 'rebalanceo semanal sobre barras diarias' para silenciar la advertencia de consistencia de Capa-1.5.

Implementación

Rotación cross-sectional long-only, rebalanceada semanalmente, sobre los principales USD-M 8 (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP). El abarrotamiento de cada nombre se mide a partir de la ratio largo/corto TAKER VOLUME por nombre en el mirror `metrics` de Binance Vision (volumen de compra agresivo / volumen de venta agresivo, 5-min, multi-año) como un z-score de su media de 7-días frente a su propia media y sd de 90-días; los nombres crowded-long 3 LEAST se mantienen equiponderados al 30% de capital cada uno. Una puerta de efectivo de euforia sistémica construida a partir de la ratio global largo/corto ACCOUNT PRIMARY (BTC) rota todo el libro a efectivo cuando esa ratio se sitúa en el top 15% de su propia distribución de 90-días, reinvirtiendo en el percentil 65 (histéresis). Los rebalanceos están anclados al tiempo calendario (days_since_epoch % 7), no a un contador de barras. Long-only, apalancamiento 1.0, sin pierna corta.

Resultados de verificación

Verificación fallida (Capa 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox es una cesta coherente long-only de principales que ejecuta y opera (337 operaciones, avg_trade_return_pct 0.69% supera el suelo de comisiones), pero total_return -20.85%, information_ratio -0.901 frente al benchmark de cesta equiponderada, y max_drawdown 71% (CI a 96%) sugieren que la clave de ranking de flujo taker sustituida añade valor ajustado por riesgo negativo frente a una tenencia equiponderada naïve.……Ver másVer menos

Verificación fallida (Capa 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox es una cesta coherente long-only de principales que ejecuta y opera (337 operaciones, avg_trade_return_pct 0.69% supera el suelo de comisiones), pero total_return -20.85%, information_ratio -0.901 frente al benchmark de cesta equiponderada, y max_drawdown 71% (CI a 96%) sugieren que la clave de ranking de flujo taker sustituida añade valor ajustado por riesgo negativo frente a una tenencia equiponderada naïve. Esto es solo consultivo; es consecuencia del desajuste de la clave de ranking y debe ser reevaluado por el analista sobre una implementación corregida, no bloqueado aquí. - [crítico] La única característica definitoria de la hipótesis -- reiterada a lo largo del título/descripción ('por Ratio de Cuentas Long/Short GLOBAL', 'count_long_short_ratio', 'una FACTOR Pura de Sub-propiedad, No Momentum') -- es que el CROSS-SECTIONAL RANKING KEY es el ratio long/short ACCOUNT global por nombre, un proxy de posicionamiento/propiedad minorista que es deliberadamente ortogonal al momentum y al funding. El código NOT clasifica por eso. _crowd_z() / _rebalance() clasifican los 8 principales por `taker_long_short_vol_ratio` (volumen agresivo BUY / volumen agresivo SELL) leído desde `taker_flow_by_instrument`. El ratio de volumen long/short taker es una medida FLOW/AGGRESSOR, no una medida de propiedad/posicionamiento -- es materialmente distinto del ratio de cuentas y es discutiblemente más cercano al flujo/momentum de horizonte corto que la hipótesis explícitamente reclama ser ortogonal a. El ratio de cuentas nombrado se usa solo para la puerta de caja secundaria de euforia BTC (_parse_global / calculate_signal), nunca para la selección primaria. Según la lista de verificación QA, cuando el borde central específico nombrado por la hipótesis está ausente del código, eso es crítico: el factor de sub-propiedad declarado no es el factor que se está operando. (línea 259) — corrección: Cualquiera (a) cablear el ratio de cuentas global por instrumento dentro del pipeline como `global_ratio_by_instrument` (reflejando funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument en subprocess_entry.py) y clasificar por eso -- esta es la implementación fiel que la hipótesis nombra; o (b) si esa serie por pierna realmente no puede proporcionarse, la ejecución es un bloque de cobertura DATA (not_measurable) en lugar de una estrategia a enviar con una clave sustituida -- reportarlo como tal para que la hipótesis quede aparcada hasta que la serie esté cableada, en lugar de operar silenciosamente un factor (de flujo) diferente. Hacer - [advertencia] La comprobación de consistencia señala la hipótesis 'WEEKLY' vs config bar_type 1-DAY. Esto NOT es un desajuste genuino: 'semanal' en la hipótesis se refiere a la cadencia REBALANCE/HOLD, que está correctamente implementada como barras diarias con un rebalanceo de 7 días anclado a calendario (día % rebalance_days == 0). Usar barras semanales literales haría más grueso el percentil y la cadencia de euforia; la construcción de barra diaria + rebalanceo de 7 días es la forma correcta de expresar una rotación semanal. Notado por transparencia; no impulsa el veredicto. (línea 380) — corrección: Opcionalmente reformular el texto de la hipótesis para decir 'rebalanceo semanal sobre barras diarias' para silenciar la advertencia de consistencia de Capa-1.5.

Historial de iteraciones

Verificación fallida (Layer 2 — escenarios sintéticos): Parámetros usados: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Comprueba que __init__ establezca todos los atributos mediante self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() acepta 3 argumentos posicionales, pero se proporcionaron 4 (marca de tiempo de la barra: 1735691940000) - steady_downtrend: TypeError:……Ver másVer menos

Verificación fallida (Layer 2 — escenarios sintéticos): Parámetros usados: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Comprueba que __init__ establezca todos los atributos mediante self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() acepta 3 argumentos posicionales, pero se proporcionaron 4 (marca de tiempo de la barra: 1735691940000) - steady_downtrend: TypeError: RetailCrowdingContrarianRotationLong._asof() acepta 3 argumentos posicionales, pero se proporcionaron 4 (marca de tiempo de la barra: 1735691940000) - flat_ranging: TypeError: RetailCrowdingContrarianRotationLong._asof() acepta 3 argumentos posicionales, pero se proporcionaron 4 (marca de tiempo de la barra: 1735691940000) - volatility_spike: TypeError: RetailCrowdingContrarianRotationLong._asof() acepta 3 argumentos posicionales, pero se proporcionaron 4 (marca de tiempo de la barra: 1735691940000) - zero_volume: TypeError: RetailCrowdingContrarianRotationLong._asof() acepta 3 argumentos posicionales, pero se proporcionaron 4 (marca de tiempo de la barra: 1735691940000) - price_gap: TypeError: RetailCrowdingContrarianRotationLong._asof() acepta 3 argumentos posicionales, pero se proporcionaron 4 (marca de tiempo de la barra: 1735691940000)

Verificación fallida (Layer 3 — backtest en sandbox): la prueba rápida superó el límite de 300s de tiempo real. Casi siempre significa que el trabajo por barra aumenta con el historial; por ejemplo, volver a recorrer toda la serie de financiación/complementaria, o reconstruir una lista y llamar a min()/sorted() dentro de calculate_signal()/on_bar() en cada barra. Precalcula los arrays ordenados de marcas de tiempo ONCE en __init__ y usa bisect, o almacena en caché las consultas indexadas por marca de tiempo, para que el coste por barra sea O(log n), no O(n).

Verificación fallida (Capa 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox es una prueba de humo y no es un motivo de fallo, pero notar: metrics_reliable=false, Sharpe (0.10) con signo incoherente respecto a total_return (-34.3%), MDD 70%, y el libro de OI-crowding pierde más en el tercil de volatilidad estresada (-37.8%). Si el mecanismo sobrevive a la revisión de backtest, primero comprobar si el z-rank OI tiene algún borde direccional, dado que OI es agnóstico a la dirección. - El……Ver másVer menos

Verificación fallida (Capa 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox es una prueba de humo y no es un motivo de fallo, pero notar: metrics_reliable=false, Sharpe (0.10) con signo incoherente respecto a total_return (-34.3%), MDD 70%, y el libro de OI-crowding pierde más en el tercil de volatilidad estresada (-37.8%). Si el mecanismo sobrevive a la revisión de backtest, primero comprobar si el z-rank OI tiene algún borde direccional, dado que OI es agnóstico a la dirección. - El borde central de la hipótesis es un rango cross-sectional sobre el GLOBAL LONG/SHORT ACCOUNT RATIO por nombre — un factor direccional de sub-propiedad minorista ('mantener los nombres en los que el retail está LEAST crowded-LONG largo'). El código en su lugar clasifica por z-score PERP OPEN INTEREST por nombre y mantiene los 3 más bajos. Este es un mecanismo sustituido que no preserva la economía: OI no es un proxy minorista (es el nocional abierto total entre todos los participantes), y OI es DIRECTION-BLIND (largos agregados == cortos en perps), por lo que no puede expresar 'menos crowded-long.' El borde específico nombrado por la hipótesis está ausente del código → crítico.

Verificación fallida (Layer 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox parece saludable (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) precisamente porque el código es una rotación de carry de funding que el desarrollador confirma que se solapa con la cesta de carry de funding negativo ya desplegada — por lo que los buenos números argumentan en contra de promover un casi-duplicado de una estrategia activa, no el factor de abarrotamiento ortogonal que la hipótesis pretendía……Ver másVer menos

Verificación fallida (Layer 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox parece saludable (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) precisamente porque el código es una rotación de carry de funding que el desarrollador confirma que se solapa con la cesta de carry de funding negativo ya desplegada — por lo que los buenos números argumentan en contra de promover un casi-duplicado de una estrategia activa, no el factor de abarrotamiento ortogonal que la hipótesis pretendía añadir. Consultivo; el bloqueo es de fidelidad. - El núcleo no está implementado y el sustituto es el mecanismo exacto que la hipótesis EXCLUDES. La hipótesis clasifica por la ratio GLOBAL largo/corto ACCOUNT por nombre (abarrotamiento minorista), explícitamente 'no funding (carry)... ortogonal al momentum y al funding'. El código clasifica la sección cruzada por FUNDING por nombre (el más bajo = mantenido) — una clasificación de carry de funding que el desarrollador admite que se solapa con la cesta de carry desplegada. La clave de abarrotamiento de ratio de cuentas está ausente y es inviable (métricas cableadas solo para el símbolo primario; sin metrics_by_instrument). - Cadencia de rebalanceo anclada a un contador de barras relativo al proceso (self._bar_i % rebalance_days), no a la marca de tiempo de la barra. Los reinicios resetean _bar_i y desplazan la cuadrícula de rotación semanal fuera de cualquier día fijo del calendario; la reproducción de paridad no puede reproducir las fechas de rotación. Forma más leve del elemento-20 (sin disparo de centinela/primera-barra). Derivar de días-desde-la-época o un día fijo de la semana.

Motivo de abandono

verification_loop: Verificación fallida (Layer 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox es una cesta coherente de principales long-only que se ejecuta y opera (337 operaciones, avg_trade_return_pct 0.69% supera el umbral de comisiones), pero total_return -20.85%, information_ratio -0.901 frente al benchmark de cesta equiponderada, y max_drawdown 71% (CI a 96%) sugieren que la clave de clasificación de flujo de taker sustituida añade valor negativo ajustado al riesgo sobre una……Ver másVer menos

verification_loop: Verificación fallida (Layer 4 — revisión QA) [clase=hypothesis_mismatch]: - [edge_concern] El sandbox es una cesta coherente de principales long-only que se ejecuta y opera (337 operaciones, avg_trade_return_pct 0.69% supera el umbral de comisiones), pero total_return -20.85%, information_ratio -0.901 frente al benchmark de cesta equiponderada, y max_drawdown 71% (CI a 96%) sugieren que la clave de clasificación de flujo de taker sustituida añade valor negativo ajustado al riesgo sobre una tenencia equiponderada ingenua. Esto es solo consultivo; es consecuencia del desajuste de la clave de clasificación y debe ser reevaluado por el analista sobre una implementación corregida, no bloqueado aquí. - [crítico] La única característica definitoria de la hipótesis -- reiterada a lo largo del título/descripción ('por ratio largo/corto de cuentas GLOBAL', 'count_long_short_ratio', 'un FACTOR puro de sub-poseimiento, no momentum') -- es que el CROSS-SECTIONAL RANKING KEY es la ratio global largo/corto ACCOUNT por nombre, un proxy de posicionamiento/poseimiento minorista que es deliberadamente ortogonal al momentum y al funding. El código NOT clasifica según eso. _crowd_z() / _rebalance() clasifican los principales 8 por `taker_long_short_vol_ratio` (volumen agresivo BUY / volumen agresivo SELL) leído de `taker_flow_by_instrument`. La ratio de volumen largo/corto del taker es una medida FLOW/AGGRESSOR, no una medida de poseimiento/posicionamiento -- es materialmente diferente de la ratio de cuentas y es posiblemente más cercana al flujo/momentum de horizonte corto al que la hipótesis explícitamente afirma ser ortogonal. La ratio de cuentas nombrada se usa solo para la puerta secundaria de efectivo de euforia BTC (_parse_global / calculate_signal), nunca para la selección primaria. Según la lista de verificación QA, cuando el núcleo nombrado específico de la hipótesis está ausente del código, eso es crítico: el factor declarado de sub-poseimiento no es el factor que se está operando. (línea 259) — corrección: (a) cablear la ratio global de cuentas por instrumento en el pipeline como `global_ratio_by_instrument` (reflejando funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument en subprocess_entry.py) y clasificar según eso -- esta es la implementación fiel que la hipótesis nombra; o (b) si esa serie por pierna genuinamente no puede proporcionarse, la ejecución es un bloque de cobertura DATA (not_measurable) en lugar de una estrategia para enviar con una clave sustituida -- informarlo así para que la hipótesis quede en pausa hasta que la serie esté cableada, en lugar de operar silenciosamente un factor diferente (flujo). Hacer - [advertencia] La comprobación de consistencia marca la hipótesis 'WEEKLY' frente a config bar_type 1-DAY. Esto NOT un desajuste genuino: 'semanal' en la hipótesis se refiere a la cadencia REBALANCE/HOLD, que se implementa correctamente como barras diarias reguladas por un rebalanceo de 7-días anclado al calendario (día % rebalance_days == 0). Usar barras semanales literales haría más grueso el percentil y la cadencia de euforia; la construcción de barra-diaria + rebalanceo-de-7-días es la forma correcta de expresar una rotación semanal. Anotado por transparencia; no impulsa el veredicto. (línea 380) — corrección: Opcionalmente reformular el texto de la hipótesis para decir 'rebalanceo semanal sobre barras diarias' para silenciar la advertencia de consistencia de Layer-1.5.

Stratmill es una herramienta de investigación y paper trading, no asesoramiento financiero ni un bróker. Los resultados de backtest y paper trading son hipotéticos. Operar conlleva riesgo de pérdida.