BikeControl (SwiftControl)
Use Zwift Click, Zwift Play, Shimano Di2, or any Bluetooth controller with MyWhoosh, Rouvy, Zwift, and more. Free to try on iOS, Android, Windows, and macOS.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Recomendaciones de apuestas para Premier League, La Liga, Serie A, Bundesliga y Champions League. Solo se publica lo que el modelo da por encima del 65%, y combinadas de 40% a 52% de probabilidad conjunta.
| Ruta | Qué es |
|---|---|
index.html | La app. Lee data/*.json; dentro de un artifact de Claude lee la base del artifact. |
data/picks.json | Los picks abiertos y liquidados. |
data/parlays.json | Las combinadas. |
data/calibracion.json | Acierto real contra predicho, y el umbral vigente. |
.github/workflows/refresh.yml | Refresco diario (ver abajo). |
Resultado (1X2 y doble oportunidad). Sale del mercado, sin modelo propio. Sobre 7.149 partidos de 2021-2025 medí que las cuotas de cierre dan 0,9693 de pérdida logarítmica contra 0,9833 del mejor modelo que pude construir, y que cualquier peso que se le dé al modelo propio empeora el resultado.
Goles. Superficie Dixon-Coles ajustada para que el total coincida con la media de la liga
corregida por desequilibrio (goles = base × (1 + 0,3678 × |pH − pA|), medido sobre 11.567 partidos)
y el reparto coincida con el mercado.
Córners, tarjetas, remates y atajadas. Binomial negativa por lado — Poisson para tarjetas, cuya varianza/media medida es 0,956 — con el ajuste por desequilibrio, que es el efecto grande:
| Supremacía del local | Córners L/V | Remates L/V | Atajadas L/V | Amarillas L/V |
|---|---|---|---|---|
| Visitante muy favorito | 3,61 / 6,18 | 9,17 / 15,71 | 4,04 / 2,32 | 1,95 / 1,64 |
| Parejo | 5,07 / 4,66 | 12,59 / 11,54 | 2,85 / 3,09 | 2,17 / 2,27 |
| Local muy favorito | 6,78 / 3,38 | 16,94 / 8,66 | 2,20 / 4,27 | 1,55 / 2,14 |
Sobre esas probabilidades va una contracción de calibración p' = 0,5 + c(p − 0,5), con
c = 0,965 córners, 0,995 tarjetas, 0,980 remates, 0,960 atajadas. Se ajustó sobre la primera mitad
de 2021-2025 y se verificó en la segunda: el desvío pasó de −0,93 a −0,32 puntos.
Champions League. La base histórica no tiene partidos de Champions, así que ahí solo se ofrecen resultado y doble oportunidad, que salen del mercado y no dependen de esa base.
Sobre 7.229 partidos reales de 2021-2025:
| Grupo | Selecciones | Predicho | Real |
|---|---|---|---|
| Resultado y goles | 74.391 | 79,8% | 80,5% |
| Córners, tarjetas, remates, atajadas | 213.359 | 76,3% | 75,9% |
| Combinadas de 40-52% | 2.625 | 47,2% | 48,0% |
.github/workflows/refresh.yml corre en GitHub Actions y commitea los datos en este repo, con lo
que Vercel redespliega solo. Tiene dos cadencias: una corrida completa (50 10 * * *), que liquida,
mide el acierto, ajusta el umbral y genera los picks de lo que viene, y una de solo liquidar
(*/30 13-23 * * *), pensada para cerrar los picks apenas termina el partido.
Esa segunda cadencia no se cumple. Están programados unos 23 turnos por día y GitHub ejecuta entre 3 y 6; los primeros días de noviembre, 3. El 4 de noviembre los partidos de las 20:00 UTC terminaron cerca de las 21:50 y la corrida siguiente recién pasó a las 23:20, a mano: hora y media con el marcador definido y el pick en «Esperando resultado». Es cómo GitHub trata los cron de schedule, y no se arregla subiendo la frecuencia.
Por eso lo que se ve no depende de Actions. api/final.js devuelve los partidos ya terminados (hoy
y ayer, en UTC) y la página liquida contra eso los mercados que dependen solo del marcador
—resultado y total de goles— y recalcula las combinadas. Es la misma fuente y la misma cuenta que
usa el pipeline, así que cuando Actions corre el número ya coincide; el sello lleva un title que
aclara que falta confirmarlo. Córners, tarjetas, remates y atajadas sólo los publica
football-data.co.uk, así que ésos siguen esperando la corrida completa.
Actions sigue siendo quien liquida de verdad y deja el historial. Si hiciera falta que el repo se actualice al mismo ritmo que la página, el camino es un cron externo (cron-job.org o similar) que dispare el workflow por la API de GitHub; eso pide un token con permiso de Actions guardado como variable de entorno en Vercel, nunca en el repo. Vercel Cron no sirve acá: en el plan Hobby corre una vez al día.
| Resultado | Goles | Córners, tarjetas, remates | |
|---|---|---|---|
| Premier, LaLiga, Serie A, Bundesliga | sí | sí | sí |
| Champions, Europa, Conference, Nations League, AFCON | sí | sí | no |
Las cuatro ligas domésticas salen de football-data.co.uk, que publica el marcador y también córners, tarjetas, remates y atajadas de cada partido. Es la única fuente gratuita que los da, y sólo cubre esas ligas.
Para las demás competencias, el resultado y los goles salen del mercado: el 1X2 del
consenso de casas y las líneas de goles de alternate_totals de The Odds API, pedidas
por partido dentro de la ventana en la que ya puede generar un pick. Eso no necesita
modelo propio ni historia: la cuota de cierre le gana a cualquier modelo, y la
liquidación sólo precisa el marcador, que LiveScore ya trae.
Córners y tarjetas en esas competencias no se ofrecen, y no es por falta de cuotas.
The Odds API las vende (alternate_totals_corners, alternate_totals_cards). Lo que no
hay es con qué liquidarlas: football-data no cubre esas competencias y el feed de
LiveScore trae sólo el marcador y el entretiempo (Tr1, Tr2, Trh1, Trh2), sin una
sola estadística — comprobado contra seis rutas candidatas de su API, todas 404. Un pick
que no se puede cerrar es peor que no tenerlo: queda para siempre esperando resultado y
no cuenta en la precisión. Para habilitarlos hace falta una fuente de estadísticas que
cubra torneos; la opción realista es API-Football, que publica córners, tarjetas y
remates por partido y tiene capa gratuita de 100 consultas al día.
This is the beginning of the README. Read the rest at the original. Read the full README ↗