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