Cómo entrené una IA simple en Python para analizar velas

 

Hace poco estuve experimentando con la idea de entrenar una IA muy simple para analizar patrones en velas de mercado. Obtuve permisos de las estructuras básicas de supergana.com que es una de las IAs más famosas de trading para binarias.

No es un sistema mágico ni una máquina de hacer dinero. La idea fue ver si un modelo básico podía detectar patrones en datos históricos.

 

En este artículo explico:

  • cómo obtuve los datos.
  • cómo convertí velas en datos que una IA puede entender.
  • cómo entrené un modelo simple.

Todo usando Python y librerías básicas de machine learning.

 

1. La idea del experimento

Las velas contienen mucha información:

  • apertura.
  • cierre.
  • máximo.
  • mínimo.

Los traders suelen buscar patrones visuales.

La pregunta fue: ¿Puede un modelo de machine learning detectar patrones similares en datos históricos?

Para probarlo hice algo muy simple: El modelo intentaría predecir si la próxima vela cerrará más arriba o más abajo.

 

2. Librerías que utilicé

Las herramientas fueron muy básicas:

  • Pandas para manipulación de datos.
  • NumPy para cálculos.
  • scikit-learn para modelo de machine learning.

Instalación:

pip install pandas numpy scikit-learn

 

3. Cargando datos de velas

Primero necesitamos datos históricos.

Ejemplo de estructura CSV:

time,open,high,low,close
1,1.1200,1.1210,1.1190,1.1205
2,1.1205,1.1220,1.1200,1.1215

 

Código para cargar los datos:

import pandas as pd

data = pd.read_csv(“candles.csv”)

print(data.head())

 

Esto nos da una tabla con las velas.

 

4. Creando características (features)

Una IA no entiende gráficos porque hay que convertir velas en números útiles.

Por ejemplo:

  • tamaño del cuerpo.
  • sombra superior.
  • sombra inferior.

Código:

data[“body”] = data[“close”] – data[“open”]
data[“upper_shadow”] = data[“high”] – data[[“open”,”close”]].max(axis=1)
data[“lower_shadow”] = data[[“open”,”close”]].min(axis=1) – data[“low”]

Ahora cada vela tiene características numéricas.

 

5. Crear el objetivo de predicción

Queremos predecir: ¿La siguiente vela sube o baja?

Código:

data[“target”] = (data[“close”].shift(-1) > data[“close”]).astype(int)

Resultado: 1=sube y 0=baja.

 

6. Preparar los datos para la IA

Seleccionamos las características:

features = [“body”,”upper_shadow”,”lower_shadow”]

X = data[features]
y = data[“target”]

Dividimos datos en entrenamiento y prueba.

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)

7. Entrenando el modelo

Usé un modelo simple: Random Forest.

Código:

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(
n_estimators=100,
random_state=42
)

model.fit(X_train, y_train)

El modelo ahora intenta aprender patrones.

 

8. Evaluando el modelo

Probamos el rendimiento.

from sklearn.metrics import accuracy_score

predictions = model.predict(X_test)

accuracy = accuracy_score(y_test, predictions)

print(“Accuracy:”, accuracy)

 

Normalmente obtuve algo entre: 0.52 – 0.58, es decir, ligeramente mejor que azar con lo cual ya es interesante para un modelo tan simple.

 

9. Probando predicciones

Ejemplo:

sample = X_test.iloc[0:5]

pred = model.predict(sample)

print(pred)

Salida posible: [1 0 1 1 0]

 

Interpretación:

1 = modelo cree que sube.

0 = modelo cree que baja.

 

10. Qué aprendí de este experimento

Algunas conclusiones interesantes:

Los modelos simples ya detectan ciertos patrones y aunque el rendimiento es limitado, las velas por sí solas tienen poca información por lo que agregar más datos ayudaría:

  • volumen.
  • indicadores.
  • contexto del mercado.

 

El feature engineering importa mucho

Crear mejores características puede mejorar el modelo más que cambiar el algoritmo.

 

11. Cosas que probaría después

Si alguien quiere experimentar más, probaría:

  • redes neuronales.
  • modelos de series temporales.
  • secuencias de velas en lugar de una sola.
  • indicadores técnicos.

 

Conclusión

Este experimento fue una forma interesante de explorar cómo machine learning puede analizar patrones en velas.

El modelo fue deliberadamente simple.

La idea no era crear un sistema de trading completo, sino entender cómo estructurar los datos, cómo entrenar un modelo básico, qué tipo de patrones puede detectar una IA.

En los próximos días postearé una segunda parte.

Agradecimientos para todo el equipo de supergana.com