O misterioso número 63 :)
Eu defini a mesma data e as mesmas configurações, mas os resultados foram diferentes. Alguém sabe por quê?
Resultados do teste do primeiro modeloResultados do teste do segundo modelo
Em primeiro lugar, muito obrigado por organizar este material, é bom dar uma olhada em diferentes direções. É fácil de acompanhar e bem elaborado.
Para mim, obtenho taxas de sucesso semelhantes e um número ligeiramente menor de negociações com a conta de demonstração, mas quando uso a conta de demonstração do Meta Trader. Com minha conta de negociação, ela só é negociada uma vez. Presumo que seja o fuso horário da corretora, pois minha corretora fica na Austrália (GMT+10). A primeira transação da conta demo é; Core 1 2023.01.02 07:02:00 deal #2 sell 1 EURUSD at 1.07016 done(based on order #2)
A primeira transação da My Broker Australia (GMT+10) é; Core 1 2023.01.03 00:00:00 failed market sell 1 EURUSD [Market closed] e não sei exatamente como resolver isso. É possível que todo o modelo dependa do fuso horário. Se esse for o caso, os horários devem ser definidos em horas inteiras... mas como a transação inicial 2023.01.02 07:02:00 se torna 2023.01.03 00:00:00:00?
Gostaria de receber sugestões sobre a causa desse problema.
serviço comercial
Da mesma forma, consegui reproduzir resultados muito semelhantes com os arquivos onnx originais na minha conta MetaQuates-Demo.
Em seguida, consegui treinar novamente os MLs Python até a conclusão, embora com os seguintes avisos/erros que podem ser ignorados:
D:\MT5 Demo1\MQL5\Experts\article_12433\Python>python ONNX.eurusd.D1.10.Training.py 2023-11-19 18:07:38.169418: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found 2023-11-19 18:07:38.169664: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. data path to save onnx model 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5187/5187 [00:00<00:00, 6068.93it/s] 2023-11-19 18:07:40.434910: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'nvcuda.dll'; dlerror: nvcuda.dll not found 2023-11-19 18:07:40.435070: W tensorflow/stream_executor/cuda/cuda_driver.cc:263] failed call to cuInit: UNKNOWN ERROR (303) 2023-11-19 18:07:40.437138: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: WIN-SSPXX7BO0B0 2023-11-19 18:07:40.437323: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: WIN-SSPXX7BO0B0 2023-11-19 18:07:40.437676: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2 To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. Epoch 1/50 111/111 - 1s - loss: 1.6160 - mae: 0.9378 - val_loss: 2.7602 - val_mae: 1.3423 - lr: 0.0010 - 1s/epoch - 12ms/step Epoch 2/50 111/111 - 0s - loss: 1.4932 - mae: 0.8952 - val_loss: 2.4339 - val_mae: 1.2412 - lr: 0.0010 - 287ms/epoch - 3ms/step ...
ambos os scripts de ML terminam com:
111/111 - 0 s - loss: 1.2812 - mae: 0.8145 - val_loss: 1.2598 - val_mae: 0.8142 - lr: 1.0000 e-06 - 366 ms/epoch - 3 ms/step Epoch 50/50 111/111 - 0 s - loss: 1.3030 - mae: 0.8203 - val_loss: 1.2604 - val_mae: 0.8143 - lr: 1.0000 e-06 - 365 ms/epoch - 3 ms/step 33/33 [==============================] - 0 s 1 ms/step - loss: 1.1542 - mae: 0.7584 test_loss=1.154 test_mae=0.758 2023-11-19 18:07:57.480814: I tensorflow/core/grappler/devices.cc:66] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 0 2023-11-19 18:07:57.481315: I tensorflow/core/grappler/clusters/single_machine.cc:358] Starting new session 2023-11-19 18:07:57.560110: I tensorflow/core/grappler/devices.cc:66] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 0 2023-11-19 18:07:57.560380: I tensorflow/core/grappler/clusters/single_machine.cc:358] Starting new session 2023-11-19 18:07:57.611678: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:354] MLIR V1 optimization pass is not enabled saved model to model.eurusd.D1.10.onnx
24/24 - 0 s - loss: 0.6618 - accuracy: 0.6736 - val_loss: 0.8993 - val_accuracy: 0.4759 - lr: 4.1746 e-05 - 37 ms/epoch - 2 ms/step Epoch 300/300 24/24 - 0 s - loss: 0.6531 - accuracy: 0.6770 - val_loss: 0.8997 - val_accuracy: 0.4789 - lr: 4.1746 e-05 - 39 ms/epoch - 2 ms/step 11/11 [==============================] - 0 s 682 us/step - loss: 0.8997 - accuracy: 0.4789 test_loss=0.900 test_accuracy=0.479 2023-11-19 18:07:19.838160: I tensorflow/core/grappler/devices.cc:66] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 0 2023-11-19 18:07:19.838516: I tensorflow/core/grappler/clusters/single_machine.cc:358] Starting new session 2023-11-19 18:07:19.872285: I tensorflow/core/grappler/devices.cc:66] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 0 2023-11-19 18:07:19.872584: I tensorflow/core/grappler/clusters/single_machine.cc:358] Starting new session saved model to model.eurusd.D1.63.onnx
Em seguida, recompilei o ONNX.Price.Prediction.2M.D1.mq5 original para usar os novos MLs que treinei.
Os resultados do backtest com a mesma conta MetaQuates-Demo foram muito diferentes do original, o que não parece bom.
Gostaria muito de saber o que deu errado.
Muito obrigado.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso


Novo artigo Um exemplo de como montar modelos ONNX em MQL5 foi publicado:
O ONNX (Open Neural Network Exchange) é um padrão aberto para a representação de modelos de redes neurais. Neste artigo, mostraremos a possibilidade de usar dois modelos ONNX simultaneamente em um Expert Advisor.
Para garantir uma negociação consistente e estável, é comum aconselhar a diversificação dos instrumentos negociados e das estratégias de negociação. Isso também se aplica aos modelos de aprendizado de máquina: a criação de diversos modelos mais simples é mais viável do que um único complexo. Contudo, pode ser desafiador combinar esses modelos em um único modelo ONNX.
Apesar disso, é factível unir vários modelos ONNX já treinados em um programa MQL5. Neste artigo, vamos explorar uma dessas combinações, conhecida como classificador de votação, e mostrar como implementá-la de forma simples e eficiente.
Seguem os resultados dos testes do primeiro modelo.
Agora seguem os testes do segundo modelo.
Autor: MetaQuotes