Discusión sobre el artículo "Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte III): Descifrando el algoritmo del Boom 1000"

 

Artículo publicado Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte III): Descifrando el algoritmo del Boom 1000:

En esta serie de artículos, analizamos cómo podemos construir Asesores Expertos capaces de adaptarse de forma autónoma a las condiciones dinámicas del mercado. En el artículo de hoy, intentaremos sintonizar una red neuronal profunda con los mercados sintéticos de Deriv.

Analizaremos todos los mercados sintéticos de Deriv individualmente, comenzando por su mercado sintético más conocido, el Boom 1000. El Boom 1000 es conocido por su comportamiento volátil e impredecible. El mercado se caracteriza por velas bajistas lentas, cortas y de tamaño uniforme, seguidas aleatoriamente por velas alcistas violentas del tamaño de un rascacielos. Las velas alcistas son especialmente difíciles de mitigar porque los ticks asociados con la vela normalmente no se envían a la terminal del cliente, lo que significa que todos los stop loss se rompen con un deslizamiento garantizado en cada ocasión.

Por lo tanto, la mayoría de los traders exitosos han creado estrategias basadas libremente en aprovechar únicamente oportunidades de compra cuando operan en el Boom 1000. Recuerde que el Boom 1000 podría caer durante 20 minutos en el gráfico M1 y retroceder todo ese movimiento en 1 vela. Por lo tanto, dada su naturaleza alcista excesivamente poderosa, los traders exitosos buscan usar esto para su beneficio al atribuir más peso a las configuraciones de compra en el Boom 1000 que a una configuración de venta.

Autor: Gamuchirai Zororo Ndawana

 
MetaQuotes:
Analizaremos individualmente todos los mercados sintéticos Deriv, empezando por el más famoso: el Boom 1000.

¡Muchas gracias por el artículo! Llevo mucho tiempo mirando estos índices, pero no sabía desde qué lado acercarme a ellos.

Por favor, ¡continúen!

 

#Instatiate the model model = MLPClassifier(hidden_layer_sizes=(30,10),max_iter=200) #Cross validate the model for i,(train,test) in enumerate(tscv.split(train_X)): model.fit(train_X.loc[train[0]:train[-1],:],ohlc_train_y.loc[train[0]:train[-1]]) validation_accuracy.iloc[i,0] = accuracy_score(ohlc_train_y.loc[test[0]:test[-1]],model.predict(train_X.loc[test[0]:test[-1],:]))


--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[25], line 5 3 #Validación cruzada del modelo 4 for i,(train,test) in enumerate(tscv.split(train_X)): ----> 5 model.fit(train_X.loc[train[0]:train[-1],:],ohlc_train_y.loc[train[0]:train[-1]]) 6 validation_accuracy.iloc[i,0] = accuracy_score(ohlc_train_y.loc[test[0]:test[-1]],model.predict(train_X.loc[test[0]:test[-1],:]) File c:\Python\ocrujenie\.ordi\Lib\site-packages\sklearn\base.py:1389, in _fit_context.<locals>.decorator.<locals>.wrapper(es timator, *args, **kwargs) estima t or._validate_pa r ams( ) con config_context( 1385 s kip_ p arameter_validation=( 1386 pr ef e r_skip_nested_validati o n o global_skip_validation ) 1388 ): -> return fit_method(estimator, *args, **kwargs) File c:\Python\ocrujenie\.ordi\Lib\site-packages\sklearn\neural_network\_multilayer_perceptron.py:754, in BaseMultilayerPerceptron.fit(self, X, y) 736 @_fit_context(prefer_skip_nested_validation=True) 737 def fit(self, X, y): 738 """Ajusta el modelo a la matriz de datos X y al objetivo(s) y. 739 740 Parámetros (...) 752 Devuelve un modelo MLP entrenado. 753 """
...
476 "Found input variables with inconsistent numbers of samples: %r" 477 % [int(l) for l in lengths] 478 ) ValueError: Found input variables with inconsistent numbers of samples: [4139, 4133]

La salida está truncada. Ver como elemento desplazable o abrir en un editor de texto. Ajuste la configuración de salida de la celda ...


He probado varias herramientas y en cada una de ellas tu modelo da unerror debido a tamaños inconsistentes de los datos de entrada (X) y las variables objetivo (y).
 
Janis Ozols # :

Muchas gracias por el artículo. Llevo mucho tiempo analizando estos índices, pero no sabía muy bien por dónde enfocarlos.

Por favor, ¡continúen!

De nada, Janis.

Definitivamente continuaré. Hay mucho que cubrir, pero voy a crear tiempo.

 
Aliaksandr Kazunka # :

#Instalar el modelo = MLPClassifier(hidden_layer_sizes=(30,10),max_iter=200) #Validación cruzada del modelo for i,(train,test) in enumerate(tscv.split(train_X)): model.fit(train_X.loc[train[0]:train[-1],:],ohlc_train_y.loc[train[0]:train[-1]]) validation_accuracy.iloc[i,0] = accuracy_score(ohlc_train_y.loc[test[0]:test[-1]],model.predict(train_X.loc[test[0]:test[-1],:]))


------------------------------------------------------------------------------ ValueError Traceback (most recent call last) Cell In[25] , line 5 3 #Validación cruz ada del modelo 4 for i,(train,test) in enumerate (tscv.split(train_X)): ----> 5 model.fit(train_X.loc[train [ 0 ] :train[ -1 ],:], ohlc_train_y .loc[ train [ 0 ] :train [ -1 ] ] ) 6 validation_accuracy.iloc[i, 0 ] = accuracy_score(ohlc_train_y.loc[test[ 0 ]:test[ -1 ] ] ,model.predict(train_X.loc[test[ 0 ]:test [ -1 ], :])) File c:\Python\ocrujenie\.ordi\Lib\site-packages\sklearn\base.py:1389 , in _fit_context.<locals>.decorator.<locals>.wrapper (estimator, *args, **kwargs) 1382 estimator._validate_params() 1384 with config_context( 1385 skip_parameter_validation=( 1386 prefer_skip_nested_validation or global_skip_validation 1387 ) 1388 ): -> 1389 return fit_method(estimator, *args, **kwargs) File c:\Python\ocrujenie\.ordi\Lib\site-packages\sklearn\neural_network\_multilayer_perceptron.py:754 , in BaseMultilayerPerceptron.fit (self, X, y) 736 @_fit_context ( prefer_skip_nested_validation=True ) 737 def fit ( self , X , y): 738 " " " Ajustar el modelo a los datos matriz
...
476 "Variables de entrada encontradas con número inconsistente de muestras: %r " 477 % [ int (l) for l in lengths] 478 ) ValueError : Variables de entrada encontradas con número inconsistente de muestras: [4139, 4133]

La salida está truncada. Ver como un elemento desplazable o abrir en un editor de texto . Ajuste la configuración de salida de la celda .. .


He probado varias herramientas, y en cada una de ellas tu modelo da un error debido a tamaños inconsistentes de los datos de entrada (X) y las variables objetivo (y).

Hola Aliaksandr, puedes utilizar el código como modelo guía, y luego hacer los ajustes necesarios por tu cuenta. También te recomendaría probar diferentes indicadores, probar diferentes variaciones de la idea general del artículo. Eso nos ayudará a entender la verdad global más rápido.