Un sistema que sigue la tendencia de BTCUSDT en velas de 4h. Entra bajo tres condiciones, protege cada posición con stop loss, y el resto del tiempo se queda en efectivo. Corre en testnet, sin dinero real — cada decisión queda registrada y es auditable.
El indicador no es el secreto — el secreto es cuándo se le permite actuar. Un cruce de EMAs por sí solo es una estrategia de principiante: en mercado lateral genera señales falsas y sangra por comisiones. Aquí el cruce nunca dispara solo. Primero un detector de régimen decide si hay tendencia; si no la hay, el bot ni mira la señal. Esa compuerta —no el indicador— es la inteligencia del sistema.
La compuerta · las tres deben cumplirse, en orden
El régimen es alcista — el detector (ADX) confirma tendencia, no ruido lateral
La EMA de 9 cruza sobre la de 21 — recién entonces importa el gatillo de momentum
El volumen supera su media de 20 — hay convicción detrás del movimiento
Qué mide cada indicador
Media móvil exponencial: la dirección reciente del precio. Su cruce marca cambios de momentum.
Mide la fuerza de la tendencia, no su dirección. Alto = tendencia clara; bajo = lateral. Decide si el bot puede operar.
Cuánto se mueve el precio en promedio (volatilidad). Fija dónde va el stop loss y el tamaño de la posición.
Cuánto se negocia. Confirma si hay convicción real detrás del movimiento del precio.
Stop loss en toda posición · máx. 2% de riesgo por operación · máx. 3 posiciones simultáneas · corte automático si el día pierde 5%. Sin señal válida, el bot está en efectivo — no overtrading.
Por sí solo, sí — un cruce de EMAs suelto pierde dinero en mercados laterales por las señales falsas. Justo por eso aquí nunca opera solo: solo dispara con régimen alcista y volumen confirmando, y toda posición lleva stop loss. La simplicidad del gatillo es deliberada: menos parámetros, menos sobreajuste. La rigurosidad está en la compuerta, no en el indicador.
En marcos de 1 a 5 minutos el precio es casi todo ruido y las comisiones se comen cualquier ventaja. La vela de 4h filtra ese ruido: menos señales, pero de más calidad (~0,6 operaciones al mes). Y el bot solo evalúa velas ya cerradas, nunca a media formación.
Nada — y es a propósito. Si el régimen no es de tendencia alcista clara, el bot se queda en efectivo. No tener posición es una decisión válida; la mayoría del tiempo, de hecho, es la correcta. El sistema premia la paciencia sobre la actividad.
Se probó la estrategia en cinco pares y la ventaja se concentró en BTC, el más líquido y con menor spread. Operar un solo símbolo permite validar el sistema completo, sin ruido, antes de escalar a varios pares.
Con $200 de capital de aprendizaje, un modelo complejo es más fácil de sobreajustar al pasado que de generalizar al futuro. Reglas simples y explicables se auditan decisión por decisión; una caja negra, no. El objetivo de esta fase es un sistema confiable, no uno impresionante.
Porque primero hay que demostrar tres cosas: que corre estable 24/7, que el comportamiento en vivo coincide con el backtest, y que cada decisión es auditable. El dinero real llega después de ese track record — no antes.
Es spot, long-only. Ponerse corto exige margen y préstamo, con un perfil de riesgo que no se justifica para un sistema de aprendizaje. Si no hay tendencia alcista para montar, la respuesta correcta es esperar, no apostar a la baja.
El gatillo tiene pocos parámetros a propósito, y la validación separó los datos de prueba de los de ajuste. Aun así, el backtest es una referencia, no una promesa — por eso la fase actual mide si el vivo replica lo simulado antes de subir el capital.
Resultado de simular la estrategia sobre 2 años de BTC (2024–2026). El testnet aún no acumuló operaciones suficientes para comparar. Un backtest no garantiza rendimiento futuro.
Trades cerrados
| Abierta | Motivo | Exit | PnL |
|---|---|---|---|
| 06-08 16:01 | sl_hit | 62491.35 | -1.87% |
Últimas decisiones
| Tick | Régimen | Señal | Acción |
|---|---|---|---|
| 06-22 00:01 | ranging | no_signal | skip |
| 06-21 20:01 | ranging | no_signal | skip |
| 06-21 16:01 | ranging | no_signal | skip |
| 06-21 12:01 | ranging | no_signal | skip |
| 06-21 08:01 | ranging | no_signal | skip |
| 06-21 04:01 | ranging | no_signal | skip |
| 06-21 00:01 | ranging | no_signal | skip |
| 06-20 20:01 | ranging | no_signal | skip |
| 06-20 16:01 | ranging | no_signal | skip |
| 06-20 12:01 | ranging | no_signal | skip |