Discussão do artigo "Expert Advisor Autônomo com MQL5 e Python (Parte III): Decifrando o Algoritmo do Boom 1000"

 

Novo artigo Expert Advisor Autônomo com MQL5 e Python (Parte III): Decifrando o Algoritmo do Boom 1000 foi publicado:

Nesta série de artigos, discutimos como podemos construir Expert Advisors capazes de se ajustarem autonomamente às condições dinâmicas do mercado. No artigo de hoje, tentaremos ajustar uma rede neural profunda aos mercados sintéticos da Deriv.

Vamos analisar todos os mercados sintéticos da Deriv individualmente, começando com o mercado sintético mais conhecido da plataforma: o Boom 1000. O Boom 1000 é conhecido por seu comportamento volátil e imprevisível. O mercado é caracterizado por velas de baixa lentas, curtas e de tamanho igual, seguidas aleatoriamente por velas de alta violentas, do tamanho de arranha-céus. As velas de alta são especialmente desafiadoras de mitigar, pois os ticks associados à vela normalmente não são enviados ao terminal do cliente, o que significa que todos os stop losses são ultrapassados com slippage garantido todas as vezes.

Portanto, a maioria dos traders bem-sucedidos criou estratégias baseadas, de forma geral, em aproveitar apenas as oportunidades de compra ao operar o Boom 1000. Portanto, a maioria dos traders bem-sucedidos criou estratégias baseadas, de forma geral, em aproveitar apenas as oportunidades de compra ao operar o Boom 1000. Portanto, dada sua natureza altista extremamente forte, traders bem-sucedidos buscam usar isso a seu favor, atribuindo mais peso às configurações de compra no Boom 1000 do que fariam com configurações de venda.

Autor: Gamuchirai Zororo Ndawana

 
MetaQuotes:
Analisaremos todos os mercados sintéticos de derivativos individualmente, começando pelo mais famoso - o Boom 1000.

Muito obrigado pelo artigo! Estou analisando esses índices há muito tempo, mas não sabia de que lado abordá-los.

Por favor, continue!

 

#Instaurar o modelo model = MLPClassifier(hidden_layer_sizes=(30,10),max_iter=200) #Validação cruzada do 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 #Cross validate the model 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],:])) Arquivo c:\Python\ocrujenie\.ordi\Lib\site-packages\sklearn\base.py:1389, em _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 """Ajuste o modelo à matriz de dados X e ao(s) alvo(s) y. 739 740 Parâmetros (...) 752 Retorna um modelo MLP treinado. 753 """
...
476 "Variáveis de entrada encontradas com números inconsistentes de amostras: %r" 477 % [int(l) for l in lengths] 478 ) ValueError: Variáveis de entrada encontradas com números inconsistentes de amostras: [4139, 4133]

A saída está truncada. Visualize como um elemento de rolagem ou abra em um editor de texto. Ajuste as configurações de saída da célula ...


Tentei várias ferramentas e, em cada uma delas, seu modelo apresenta umerro devido a tamanhos inconsistentes de dados de entrada (X) e variáveis de destino (y).
 
Janis Ozols # :

Thank you so much for the article! I've been analyzing these indexes for a long time, but I wasn't sure where to approach them.

Please continue!

You're welcome Janis.

I will definitely continue. There's a lot to cover, but I will create time.

 
Aliaksandr Kazunka # :

#Install the model model = MLPClassifier(hidden_layer_sizes=(30,10),max_iter=200) #Model cross-validation 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 #Cross validate the model 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 " " " Fit the model to the data matrix
...
476 "Input variables found with inconsistent number of samples: %r " 477 % [ int (l) for l in lengths] 478 ) ValueError : Input variables found with inconsistent number of samples: [4139, 4133]

The output is truncated. View as a scrollable element or open in a text editor . Adjust the cell output settings ...


I've tried several tools, and in each one your model gives an error due to inconsistent sizes of input data (X) and target variables (y).

Hello Aliaksandr, you can instead just use the code as template guide, and then make the necessary adjustments on your side. I'd also recommend you try different indicators, try different variations of the general idea in the article. That will help us understand the global truth faster.