Discusión sobre el artículo "Reimaginando las estrategias clásicas en MQL5 (Parte XI): Cruce de medias móviles (II)"
Gracias Gamu . Me gustan tus publicaciones y trato de aprender reproduciendo tus pasos.
Estoy teniendo algunos problemas espero que esto puede ayudar a otros.
1) mis pruebas con usted EURGBP_Stochastic diario utilizando el script suministrado sólo produce 2 órdenes y, posteriormente, la relación de Sharpe de 0,02 . Creo que tengo la misma configuración que usted, pero en 2 corredores que produce sólo 2 órdenes.
2) como un aviso para los demás puede que tenga que modificar la configuración del símbolo para que coincida con su corredor (por ejemplo, EURGBP a EURGBP.i) si es necesario
3) Cuando intento exportar los datos obtengo un array fuera de rango para el ATR, creo que esto se debe a que no consigo 100000 registros en mi Array (si lo cambio a 677) puedo obtener un archivo con 677 filas. Para mi el valor por defecto para max barras en un gráfico es 50000, si lo cambio a 100000 el tamaño de mi array es solo 677, pero posiblemente tengo una mala configuración. Tal vez usted también podría incluir la secuencia de comandos de extracción de datos en su descarga .
4)He copiado el código de su artículo para probarlo en Python. Obtengo un error look_ahead not defined ----> 3 data.loc[data["Close"].shift(-look_ahead) > data["Close"], "Binary Target"] = 1
4 data = data.iloc[:-look_ahead,:]
NameError: el nombre 'look_ahead' no está definido
5) cuando cargué su cuaderno de Juypiter lo encuentro necesitado tener mirada adelante fijada #Preveamos 20 pasos en el futuro
look_ahead = 20 , Después de esto he utilizado su archivo incluido sólo pero estoy atascado en el siguiente error , posiblemente relacionados con sólo tener 677 filas .
Ejecuto #Escala los datos antes de empezar a visualizarlos
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
que me da un error que no entiendo cómo resolver
ipython-input-6-b2a044d397d0>:4: SettingWithCopyWarning: Se está intentando establecer un valor en una copia de un slice de un DataFrame. Intente utilizar .loc[row_indexer,col_indexer] = value en su lugar Consulte las advertencias en la documentación: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
Gracias Gamu . Disfruto con tus publicaciones e intento aprender reproduciendo tus pasos.
Estoy teniendo algunos problemas espero que esto puede ayudar a otros.
1) mis pruebas con usted EURGBP_Stochastic diario utilizando el script suministrado sólo produce 2 órdenes y, posteriormente, la relación de Sharpe de 0,02 . Creo que tengo la misma configuración que usted, pero en 2 corredores que produce sólo 2 órdenes.
2) como un aviso para los demás puede que tenga que modificar la configuración del símbolo para que coincida con su corredor (por ejemplo, EURGBP a EURGBP.i) si es necesario
3) Cuando intento exportar los datos obtengo un array fuera de rango para el ATR, creo que esto se debe a que no consigo 100000 registros en mi Array (si lo cambio a 677) puedo obtener un archivo con 677 filas. Para mi el valor por defecto para max barras en un grafico es 50000, si lo cambio a 100000 el tamaño de mi array es solo 677, pero posiblemente tengo una mala configuracion. Tal vez usted también podría incluir la secuencia de comandos de extracción de datos en su descarga .
4)He copiado el código de su artículo para probarlo en Python. Obtengo un error look_ahead not defined ----> 3 data.loc[data["Close"].shift(-look_ahead) > data["Close"], "Binary Target"] = 1
4 data = data.iloc[:-look_ahead,:]
NameError: el nombre 'look_ahead' no está definido
5) cuando cargué su cuaderno de Juypiter encuentro que necesitó tener mirada adelante fijada #Preveamos 20 pasos en el futuro
look_ahead = 20 , Después de esto he utilizado su archivo incluido sólo pero estoy atascado en el siguiente error , posiblemente relacionados con sólo tener 677 filas .
Ejecuto #Escala los datos antes de empezar a visualizarlos
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
data[['Abierto', 'Alto', 'Bajo', 'Cierre', 'MA Rápido', 'MA Lento','Estoc Principal']] = scaler.fit_transform(data[['Abierto', 'Alto', 'Bajo', 'Cierre', 'MA Rápido', 'MA Lento','Estoc Principal']])
lo que me da un error que no entiendo como resolver
ipython-input-6-b2a044d397d0>:4: SettingWithCopyWarning: Se está intentando establecer un valor en una copia de un slice de un DataFrame. Intente utilizar .loc[row_indexer,col_indexer] = value en su lugar Consulte las advertencias en la documentación: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
Qué pasa Neil, confío en que estés bien.
Gracias Gamu Aprecio que , Sí, sé que hay muchas partes móviles , Voy a ver si esto va a resolver mis problemas
- 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 Reimaginando las estrategias clásicas en MQL5 (Parte XI): Cruce de medias móviles (II):
Anteriormente hemos tratado el tema de la previsión de cruces de medias móviles. El artículo se encuentra disponible en el siguiente enlace: aquí. Observamos que los cruces de medias móviles son más fáciles de pronosticar que los cambios de precios directamente. Hoy volveremos a abordar este problema tan conocido, pero con un enfoque totalmente diferente.
Ahora queremos investigar en profundidad qué diferencia supone esto para nuestras aplicaciones comerciales y cómo este hecho puede mejorar sus estrategias comerciales. Los cruces de medias móviles son una de las estrategias comerciales más antiguas que existen. Es un desafío construir una estrategia rentable utilizando una técnica tan ampliamente conocida. Sin embargo, espero demostrarles en este artículo que los perros viejos sí pueden aprender trucos nuevos.
Para ser empíricos en nuestras comparaciones, primero construiremos una estrategia comercial en MQL5 para el par EURGBP utilizando solo los siguientes indicadores:
Nuestra estrategia estará orientada a operar en el marco temporal diario. Realizaremos una prueba retrospectiva de esta estrategia desde el 1 de enero de 2022 hasta principios de junio de 2024. Nuestra estrategia utilizará inicialmente las reglas clásicas de negociación. Por lo tanto, se generarán señales de compra cada vez que la media móvil rápida cruce por encima de la media móvil lenta y la lectura estocástica esté por encima de 80. Y lo contrario es válido para nuestras señales de venta. Registraremos una señal de venta cuando la media móvil rápida se encuentre por debajo de la lenta y el oscilador estocástico esté por debajo de 20.
Autor: Gamuchirai Zororo Ndawana