Entré a un mercado adversarial (memecoins en Solana) y, en lugar de buscar hacerme rico, construí la infraestructura para medirlo: telemetría on-chain, backtesting estadístico, validación adversarial multi-agente y un motor de scoring ML + LLM. Con datos y capital real demostré que a esta latencia no hay edge explotable. Reportar ese resultado negativo con rigor es el producto. Empecé sin saber programar; lo levanté solo, con IA, en ~5 meses.
I walked into an adversarial market (Solana memecoins) and, instead of chasing quick money, I built the infrastructure to measure it: on-chain telemetry, statistical backtesting, adversarial multi-agent validation and an ML + LLM scoring engine. With real data and real capital I proved there is no exploitable edge at this latency. Reporting that negative result with rigor is the product. I started not knowing how to code; I built it solo, with AI, in ~5 months.
Cómo el bot, los datos, los backtests y las decisiones viven en un solo lugar con una sola fuente de verdad. Sin slides: el sistema real, en marcha.
How the bot, the data, the backtests and the decisions all live in one place with a single source of truth. No slides: the real system, running.
Bot live · telemetría on-chain · backtests & what-if · ledger de hipótesis · motor de scoring.Live bot · on-chain telemetry · backtests & what-if · hypothesis ledger · scoring engine.
No es una colección de scripts: es un centro de control que refleja el ciclo de vida completo en seis estaciones que giran como un flywheel (operar, capturar, investigar, decidir, estrategia, desplegar) y vuelven al bot.
It's not a pile of scripts: it's a control room that mirrors the full lifecycle across six stations spinning like a flywheel (operate, capture, research, decide, strategy, deploy) and back to the bot.
Control, salud del proceso (WS, RPC) y régimen de mercado.Control, process health (WS, RPC) and market regime.
Telemetría on-chain → datos y features, con los gaps marcados.On-chain telemetry → data and features, with the gaps flagged.
Backtest unificado + 1.325 scripts indexados y clasificados por AST (qué hace, qué lee, si escribe, si toca red) sin importarlos ni ejecutarlos, con allowlist curada de ejecución.Unified backtester + 1,325 scripts indexed and AST-classified (what it does, what it reads, whether it writes, whether it hits the network) without importing or running them, with a curated run allowlist.
Cada hipótesis con veredicto, provenance y trazabilidad.Every hypothesis with verdict, provenance and traceability.
Scoring ML+LLM post-migración hacia un TP dinámico.Post-migration ML+LLM scoring toward a dynamic TP.
Gates y exits + checklist de deploy de vuelta al bot.Gates and exits + deploy checklist, back to the bot.
Cada métrica se calcula una vez en el núcleo (pfcore). El humano en Streamlit, el agente de IA por la CLI y la cara-demo pública leen exactamente el mismo número. Nada se recalcula en una vista.
Every metric is computed once in the core (pfcore). The human in Streamlit, the AI agent over the CLI and the public demo face all read exactly the same number. Nothing is recomputed in a view.
Un ensemble de tres capas que puntúa cada token recién migrado y decide entrada y salida. Un LLM mina patrones narrativos offline, un modelo ML los combina calibrado a magnitud (AUC 0.745 con split temporal), y el LLM razona los casos borde. El diagrama es la arquitectura real, viva y versionada.
A three-layer ensemble that scores every freshly migrated token and decides entry and exit. An LLM mines narrative patterns offline, an ML model combines them calibrated to magnitude (AUC 0.745 on a temporal split), and the LLM reasons the edge cases. The diagram is the real architecture, live and versioned.
Pellizca para acercar y leer el detalle ↔Pinch to zoom in and read the detail ↔
Todo es TOUCH (peak retro). El dinero real lo sella el fill-test: ¿llena el límite a migMC y el TP cae el día 0? · trades post-mig en curso.
Everything is TOUCH (retro peak). Real money is settled by the fill-test: does the limit fill at migMC and the TP hit on day 0? · post-mig trades in progress.
Extrae señales de la narrativa del token (ticker, descripción, idioma, news) y las vuelve features baratas. Offline, sin coste en producción.Extracts signals from the token's narrative (ticker, description, language, news) and turns them into cheap features. Offline, zero cost in production.
Regresión sobre features estructurales y narrativas, calibrada por quintiles; la magnitud real vive en Q5 (peak ~9-20x).Regression over structural and narrative features, calibrated by quintiles; the real magnitude lives in Q5 (peak ~9-20x).
Razona los bordes que el modelo no resuelve. Entrada en Q4+Q5 con presencia social; salida por TP fijo fill-aware.Reasons the edges the model can't resolve. Entry on Q4+Q5 with social presence; exit via a fill-aware fixed TP.
Cada una se implementó completa, corrió en dry-run o live y se evaluó con EV honesto, no win-rate. La mayoría se descartó: matar lo que no tiene edge antes de arriesgar capital es la señal de un proceso serio.
Each one was implemented in full, ran in dry-run or live and was judged on honest EV, not win-rate. Most were killed: killing what has no edge before risking capital is the signature of a serious process.
| EstrategiaStrategy | TesisThesis | EvidenciaEvidence | VeredictoVerdict |
|---|---|---|---|
| Scoring EngineScoring ML+LLM post-migración → TP dinámicoPost-mig ML+LLM scoring → dynamic TP | La forma narrativa predice la magnitud del pumpNarrative shape predicts pump magnitude | AUC 0.745 | Research activoActive research |
| ReversiónDip-buy de memecoins establecidas (dd≤−30% + rvol + breadth)Dip-buy on established memecoins (dd≤−30% + rvol + breadth) | Las establecidas rebotan tras un dip moderadoEstablished coins rebound after a moderate dip | bt +6,3% t=2,7 → era velabt +6.3% t=2.7 → was a candle | No desplegableNon-deployable |
| FOMOOrder-flow (la manada entrando) × smart-moneyOrder-flow (the crowd piling in) × smart-money | Subirse a la ola de compras, filtrando las trampasRide the buying wave, filtered from the traps | 3 errores MÍOS, corregidos3 of my OWN errors, fixed | Inconclusa · pista vivaInconclusive · live lead |
| BOTRIDERFront-run de pump-bots en bonding curve, exit al cruce 50%Front-running pump-bots on the bonding curve, exit at 50% cross | Cosechar micro-pumps de creators competentesHarvest micro-pumps from competent creators | live n=723 · −1,66 SOL · 4 días | Cerrado · −EVClosed · −EV |
| Post-Mig LeadEntrada selectiva post-mig (deplBuy ≤ 5M & t2q ≤ 3)Selective post-mig entry (deplBuy ≤ 5M & t2q ≤ 3) | Pérdidas acotadas en AMM tras pasar el rugBounded losses on the AMM once past the rug | en fill-testin fill-test | En validaciónIn validation |
| SWT v1-v4Copy-trade de smart-money wallets minadas con FDR-BHCopy-trade of smart-money wallets mined with FDR-BH | Wallets rentables dejan huella replicableProfitable wallets leave a replicable footprint | n≥700 | Señal marginalMarginal signal |
| FT50-VS / FT40 / FT30Fixed-time exit sobre tokens viral-steadyFixed-time exit on viral-steady tokens | Salir a tiempo fijo bate al hold dinámicoA fixed-time exit beats the dynamic hold | n≥9.000 bt | Break-even |
| REG-MC5 · POSTMIG v1Regresión MC + hold post-migración RaydiumMC regression + post-migration Raydium hold | Edge histórico replicable en vivoHistorical edge replicable live | n=124 / 156 | Edge expiróEdge expired |
Cazar un bug sutil en tu propio trabajo y matarlo con evidencia justo cuando el resultado parece demasiado bueno. Esa es la señal que un escéptico cree imposible en un perfil construido con IA.
Catching a subtle bug in your own work and killing it with evidence right when the result looks too good. That's the signal a skeptic assumes is impossible in an AI-built profile.
Sospeché porque era demasiado bueno. Y lo era: un 20% de los trades cobraban un futuro que en vivo no existe. Look-ahead clásico.
Lo verifiqué con tres agentes para no creerme mi propia corrección. El edge se evaporó a ≈hold. Reporté el negativo y seguí.
Esa disciplina, no el PnL, es lo que se transfiere a un equipo.
I got suspicious because it was too good. And it was: 20% of trades were collecting a future that, live, doesn't exist. Classic look-ahead.
I verified it with three agents so I wouldn't just trust my own fix. The edge evaporated to ≈hold. I reported the negative and moved on.
That discipline, not the PnL, is what transfers to a team.
El análisis (que dirijo con IA) había cerrado esta estrategia como sin edge. No me fié del veredicto: cuestioné si se había medido de forma óptima, y al atacar esa conclusión aparecieron tres errores de medición.
The analysis (which I run with AI) had closed this strategy as no edge. I didn't trust the verdict: I questioned whether it had been measured optimally, and attacking that conclusion surfaced three measurement errors.
No me fié de mi propio "sin edge": ¿lo había medido bien? No: tres fallos (fill 7x alto, sensor ciego al intradía en una estrategia de momentum, ballena y manada mezcladas).
Corregidos, la conclusión se voltea: la manada da +0.54% (WR 65%): la dirección de la tesis. Pero n=20, p=0.21 → no dije "funciona": la pasé de REJECTED a INCONCLUSIVE.
Revisar tu propio veredicto con datos: eso se transfiere.
I didn't trust my own "no edge": had I measured it right? No: three flaws (fill 7x too high, a sensor blind to the intraday on a momentum strategy, whale and crowd mixed together).
Fixed, the conclusion flips: the crowd yields +0.54% (65% WR): the thesis's direction. But n=20, p=0.21 → I didn't say "it works": I moved it from REJECTED to INCONCLUSIVE.
Revising your own verdict with data: that's what transfers.
No le pido a la IA una respuesta. Orquesto flotas de agentes que se auditan entre sí: uno propone, otros intentan refutar, un panel vota. Una hipótesis sobrevive solo si resiste el ataque.
I don't ask the AI for an answer. I orchestrate fleets of agents that audit each other: one proposes, others try to refute, a panel votes. A hypothesis survives only if it withstands the attack.
Pellizca para acercar y leer el detalle ↔Pinch to zoom in and read the detail ↔
Una hipótesis sobrevive solo si resiste el ataque. El juicio es del panel, no de un agente.
A hypothesis survives only if it withstands the attack. Judgment is the panel's, not one agent's.
Escribo los criterios de decisión antes de ver los datos. Elimina racionalizar resultados a posteriori, la trampa más común del trading retail.I write the decision criteria before seeing the data. It removes rationalizing results after the fact, the most common retail-trading trap.
Detecté y corregí look-ahead, survivorship y sistemas lottery-dependent en mi propio research, documentados como reglas reutilizables.I caught and fixed look-ahead, survivorship and lottery-dependent systems in my own research, documented as reusable rules.
La flota del diagrama no es teoría: corre en cada decisión. Un agente ciego reconstruye el objetivo desde la fuente; varios críticos atacan con el mandato de refutar. Lo que cae, se corrige antes de tocar nada.
The fleet in the diagram isn't theory: it runs on every decision. A blind agent rebuilds the goal from the source; several critics attack, mandated to refute. What falls gets fixed before touching anything.
La flota comparte los mismos inputs: mata falsos positivos, pero un montaje de medición malo da un falso negativo que ningún nº de agentes caza. Lo estrecho así: cada punto ciego que caza un humano lo convierto en una lente adversarial reutilizable: el caso FOMO ya es una regla ("mide óptimo antes de rechazar") que la flota aplica sola la próxima vez. Irreducible: comparten los priors del mismo modelo y no hay verdad absoluta → la primera vez que aparece un sesgo nuevo, sigue haciendo falta un humano o datos reales.
The fleet shares the same inputs: it kills false positives, but a flawed measurement setup yields a false negative no number of agents catches. I narrow it like this: every blind spot a human catches becomes a reusable adversarial lens: the FOMO case is already a rule ("measure optimally before rejecting") the fleet then applies on its own. Irreducible: they share one model's priors and there's no ground truth → the first time a new bias appears, it still takes a human or real data.
Catorce skills propios encadenan el ciclo de investigación y lo hacen girar sin arranque manual. Herramientas que construí para que el sistema se auto-optimice (no para una demo.
Fourteen custom skills chain the research loop and spin it with no manual start. Tooling I built so the system self-optimizes) not for a demo.
Trae los datos del bot/VPS al laboratorio: alertas, migraciones y fills.Pulls bot/VPS data into the lab: alerts, migrations and fills.
Etiqueta el régimen (breadth de sector) para contextualizar cada señal.Tags the regime (sector breadth) to contextualize each signal.
Corre varias hipótesis en paralelo con P(>baseline); leaderboard para decidir.Runs hypotheses in parallel with P(>baseline); a leaderboard to decide.
Cada hipótesis con su veredicto; un REJECT exige careo de medición.Every hypothesis with its verdict; a REJECT requires a measurement critique.
ΔPnL real de un cambio antes de tocar el bot (pre-deploy).Real ΔPnL of a change before touching the bot (pre-deploy).
Propone hipótesis nuevas del run del día y realimenta el ciclo.Proposes new hypotheses from the day's run and feeds the loop.
Decisiones y resultados al móvil; el loop no necesita que lo vigiles.Decisions and results to your phone; the loop needs no babysitting.
El resto del método —la verificación adversarial, las sesiones paralelas que se contrastan entre sí— es el mismo en los cinco sistemas y está contado una vez: en el índice.The rest of the method —adversarial verification, parallel sessions cross-checked against each other— is the same across all five systems and is told once: on the index.
Si buscas a alguien para applied-AI, automatización o forward-deployed engineering, que no se engaña con sus propios resultados, hablemos.
If you're looking for someone in applied-AI, automation or forward-deployed engineering who doesn't fool themselves with their own results, let's talk.