文章 "在类中包装 ONNX 模型"

 

新文章 在类中包装 ONNX 模型已发布:

面向对象编程可以创建更紧凑、易于阅读和修改的代码。 在此,我们将会看到三个 ONNX 模型的示例。

多数票的计算根据等式 <总票数>/2 + 1。 总共 3 票,多数票为 2 票。 这就是所谓的“硬投票”。

测试结果仍采用相同的设置。

硬投票测试结果

我们分别回顾一下所有三个模型的工作,即盈利和无盈利交易的数量。 第一个模型 — 11:3;第二个模型 — 6:1;第三个模型 — 16:10。

看来,在硬投票的帮助下,我们改善了结果 — 16:4。 但是,当然,我们需要查看完整的报告和测试图表。

作者:MetaQuotes

 
非常有用的文章

MT5 使用的是 ONNX 1.13.0 还是 1.14.0 版本?
 

这真的很有趣,非常感谢。

在文章所附的 ML 文件ONNX.eurusd.D1.30.class.Training.py 中,def collect_dataset() 中有以下几行代码(第 48 - 59 行):

    for i in tqdm(range(n - sample_size)):
        w = df.iloc[i: i + sample_size + 1]
        x = w[['close', 'ma_fast', 'ma_slow']].iloc[:-1].values

        delta = x[0][-1] - w.iloc[-1]['close']
        if np.abs(delta)<=0.0001:
           y = 0, 1, 0
        else:
           if delta>0:
              y = 1, 0, 0
           else:
              y = 0, 0, 1

请问上述高亮显示行背后的逻辑是什么?

分类是基于第一个样本的"ma_slow"(x[0][-1])和新目标的 "close"(w.iloc[-1]['close'])之间的差异。此外,还会有"sample_size-1"的时间差异。

此外:

if delta>0:
              y = 1, 0, 0

这不应该是y = 0,0,1 吗?即卖出信号

同样,ONNX.eurusd.D1.10.class.Training.pydef collect_dataset(),第 45-47 行:

        x = w[['open', 'high', 'low', 'close']].iloc[:-1].values

        delta = x[3][-1] - w.iloc[-1]['close']
如何分类?分类是基于第四个样本的"收盘价"(x[3][-1])和新目标的 "收盘价"(w.iloc[-1]['收盘价'])之间的差异;并且会有"sample_size-4"的时间差异。
 
Xiaoyu Huang #:
非常有用的文章

MT5 使用的是 ONNX 1.13.0 还是 1.14.0 版本?
似乎找不到相关信息。询问的原因是什么?