Hola Dmitriy
Instale todas las librerias pero cuando intento ejecutar este rograma python me da este error:
runfile('C:/Usuarios/rogerio/ título1.py', wdir='C:/Usuarios/rogerio')
Traceback (most recent call last):
File "C:/Users/rogerio/ título1.py", line 20, in <module>.
rsi=tl.RSI(tipos['cierre'])
TypeError: El objeto 'NoneType' no es subscriptible
Estoy usando este código fuente
# -------------------------------------------------------#
# Modelo de agrupación de datos #
# -------------------------------------------------------#
# Bibliotecas de importación
import numpy as np
import matplotlib.pyplot as plt
import MetaTrader5 as mt5
from talib import abstract as tl
import sklearn.cluster as cluster
from datetime import datetime as dt
# Conectar al terminal MetaTrader 5
if not mt5.initialize():
print("initialize() failed, error code =",mt5.last_error())
quit()
# Descarga de cotizaciones
rates=mt5.copy_rates_range('EURUSD',mt5.TIMEFRAME_H1,dt(2006,1,1),dt(2022,1,1))
mt5.shutdown()
# Calcular los valores de los indicadores
rsi=tl.RSI(tipos['cierre'])
cci=tl.CCI(tipos['alto'],tipos['bajo'],tipos['cierre'])
macd,macdsignal,macdhist=tl.MACD(tipos['cierre'])
# Agrupar la muestra de entrenamiento
data=np.array([tipos['cierre']-tipos['apertura'],tipos['alto']-tipos['cierre'],tipos['cierre']-tipos['bajo'],rsi,cci,macd,macdsignal,macdhist]).T
s=datos.forma[0]
data=np.hstack([data[40+k:s-20+k] for k in range(0,20)])
# Realizar el clustering con un número diferente de clusters
R=rango(50,1000,50)
KM = (cluster.KMeans(n_clusters=k).fit(data) for k in R)
distancia=(k.transformar(datos) para k en KM)
dist = (np.min(D, axis=1) for D in distance)
avgWithinSS = [suma(d) / datos.forma[0] para d en distancia].
# Trazado de los resultados de entrenamiento del modelo
plt.plot(R, avgWithinSS)
plt.xlabel('$Clasters$')
plt.title('Dinámica de pérdidas')
# Mostrar los gráficos generados
plt.show()
Gracias por la ayuda
Rogerio
mt5.shutdown()
# Calcular los valores de los indicadores
rsi=tl.RSI(tipos['cierre'])
cci=tl.CCI(tipos['alto'],tipos['bajo'],tipos['cierre'])
macd,macdsignal,macdhist=tl.MACD(tipos['cierre'])
# Agrupar la muestra de entrenamiento
data=np.array([tipos['cierre']-tipos['apertura'],tipos['alto']-tipos['cierre'],tipos['cierre']-tipos['bajo'],rsi,cci,macd,macdsignal,macdhist]).T
s=datos.shape[0]
data=np.hstack([data[40+k:s-20+k] for k in range(0,20)])
# Realizar el clustering con un número diferente de clusters
R=rango(50,1000,50)
KM = (cluster.KMeans(n_clusters=k).fit(data) for k in R)
distancia=(k.transformar(datos) para k en KM)
dist = (np.min(D, axis=1) for D in distance)
avgWithinSS = [suma(d) / datos.forma[0] para d en distancia].
# Trazar los resultados de entrenamiento del modelo
plt.plot(R, avgWithinSS)
plt.xlabel('$Clasters$')
plt.title('Dinámica de pérdidas')
# Visualizar los gráficos generados
plt.show()
Gracias por la ayuda
Rogerio
Hola Rogerio.
¿Tienes instalado TA-Lib : Technical Analysis Library?
- TA-LIB.org
- ta-lib.org
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Redes neuronales: así de sencillo (Parte 14): Clusterización de datos:
Lo confieso: ha pasado más de un año desde que publiqué el último artículo. En tanto tiempo, me ha sido posible repensar mucho, desarrollar nuevos enfoques. Y en este nuevo artículo, me gustaría alejarme un poco del método anteriormente usado de aprendizaje supervisado, y sugerir una pequeña inmersión en los algoritmos de aprendizaje no supervisado. En particular, vamos a analizar uno de los algoritmos de clusterización, las k-medias.
Como podemos ver, los algoritmos de aprendizaje no supervisado permiten resolver diferentes problemas. Sin embargo, ¿cómo podemos utilizarlos en nuestro comercio? Vamos a pensar en ello. Al usar técnicas de análisis gráfico, casi siempre se habla de uno u otro patrón gráfico: pico doble/valle doble, cabeza y hombros, bandera, diversos patrones armónicos, etc. También hay patrones de velas más pequeños que contienen de 1 a 3 velas. Y, casi siempre, a la hora de intentar describir un patrón en términos matemáticos, nos enfrentamos a un gran número de convenciones y suposiciones. Esto complica su uso en el trading algorítmico. Hay que decir que también existe mucha subjetividad en la determinación de los patrones por parte del tráder humano. Por eso, al analizar el mismo gráfico, diferentes tráders encuentran en él patrones distintos, a menudo con la dirección opuesta del movimiento previsto. Sí, estoy de acuerdo, en eso se basa todo el sistema comercial. Algunos logran beneficios, y otros, pérdidas. Durante el comercio, no se crean nuevos valores, y la oferta monetaria se mantiene sin cambios. Solo ha pasado de un bolsillo a otro. Pero, ¿cómo no quedarnos con la boca abierta?
Volvamos a ver los patrones gráficos que hemos mencionados anteriormente. Sí, todos tienen su nivel de tolerancia. Pero al mismo tiempo, cada patrón posee su propia estructura específica que lo distingue del gráfico general de movimiento de precios. ¿Qué pasaría si usáramos algoritmos de clusterización de datos no supervisados y ordenáramos al modelo que identificara todas las posibles variaciones de los datos durante un cierto periodo de tiempo? Como utilizamos el aprendizaje no supervisado, no necesitamos marcar los datos y el periodo de tiempo puede ser bastante largo. Obviamente, deberemos recordar que, a medida que aumenta el horizonte temporal de la historia, también lo hacen los costes de entrenamiento del modelo.
Autor: Dmitriy Gizlyk