Для обучения используются серии из 63 цен Close
神秘的数字 63)
首先,非常感谢你将这些内容整合在一起,很高兴能从不同的方向进行研究。它简单易懂,编排合理。
对我来说,使用模拟账户的成功率和交易次数都差不多,但使用 Meta Trader 模拟账户的成功率和交易次数略低。我的交易账户只交易一次。我想这与经纪商的时区有关,我的经纪商在澳大利亚(GMT+10)。模拟账户的第一笔交易是:Core 1 2023.01.02 07:02:00 deal #2 sell 1 EURUSD at 1.07016 done(根据订单#2)。
我的 澳大利亚 经纪商(GMT+10) 的 第一笔交易 是: Core 1 2023.01.03 00:00:00 市场失败,卖出 1 EURUSD [市场关闭],不确定如何解决这个问题。整个模型可能与时区有关。但2023.01.02 07:02:00 的开始交易是如何变成2023.01.03 00:00:00 的?
如果能找到原因,我们将不胜感激。
Slava #:
交易服务
交易服务
我也是一样,在我的 MetaQuates 演示账户上使用原始 onnx文件 ,我设法重现了非常相似的结果。
然后,我设法重新训练 Python ML,并完成了训练;不过出现了以下警告/错误,可以忽略不计:
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 ...
两个 ML 脚本均以
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
接下来,我重新编译原始的 ONNX.Price.Prediction.2M.D1.mq5 以使用新训练的 ML。
使用相同的 MetaQuates 演示账户进行的回溯测试结果与原始结果大相径庭,看起来不太妙。
如果能知道出了什么问题,我将非常感激。
非常感谢。


新文章 如何在 MQL5 中集成 ONNX 模型的示例已发布:
ONNX(开放神经网络交换)是一种表现神经网络的开放格式。 在本文中,我们将展示如何在一个智能交易系统中同时使用两个 ONNX 模型。
为了稳定进行交易,通常建议采用多样化得交易工具和交易策略。 这同样是指机器学习模型:创建几个更简单的模型比创建一个复杂的模型更容易。 但是,将这些模型汇集到一个 ONNX 模型可能很困难。
不过,可以在一个 MQL5 程序中组合多个经过训练的 ONNX 模型。 在本文中,我们将研究融合方式之一,称为表决分类器。 我们将向您展示如何轻松地实现这样的融合。
第一个模型测试结果
现在我们测试第二个模型。 此处是第二个模型的测试结果。
事实证明,第二个模型比第一个模型强得多。 结果确认了弱模型需要集成的理论。 然而,本文不是关于集成理论,而是关乎实际应用。
作者:MetaQuotes