输出:TotalBase.dat(二进制轨迹数据)。
输出:TotalBase.dat(二进制轨迹数据)。
由于我们没有先前训练好的编码器(Enc.nnw)和行为器(Act.nnw),因此无法 运行 Research.mq5,而且我们 也 没有Signals\Signal1.csv 文件,因此也无法运行ResearchRealORL.mq5, 那么我们如何运行步骤 1 呢?
据我所知,在您的管道步骤 1 中,我们需要运行 Research.mq5 或 ResearchRealORL.mq5,详情如下:
输出:TotalBase.dat(二进制轨迹数据)。
输出:TotalBase.dat(二进制轨迹数据)。
由于我们没有先前训练好的编码器(Enc.nnw)和行为器(Act.nnw),因此无法 运行 Research.mq5,而且我们 也 没有Signals\Signal1.csv 文件,因此也无法运行ResearchRealORL.mq5, 那么我们如何运行步骤 1 呢?
您好、
在 Research.mq5 中,您可以找到
//--- 加载模型 float temp; //--- if(!Encoder.Load(FileName + "Enc.nnw", temp, temp, temp, dtStudied, true)) { CArrayObj *encoder = new CArrayObj(); if(!CreateEncoderDescriptions(encoder)) { delete encoder; return INIT_FAILED; } if(!Encoder.Create(encoder)) { delete encoder; return INIT_FAILED; } delete encoder; } if(!Actor.Load(FileName + "Act.nnw", temp, temp, temp, dtStudied, true)) { CArrayObj *actor = new CArrayObj(); CArrayObj *critic = new CArrayObj(); if(!CreateDescriptions(actor, critic)) { delete actor; delete critic; return INIT_FAILED; } if(!Actor.Create(actor)) { delete actor; delete critic; return INIT_FAILED; } delete actor; delete critic; } //---
因此,如果您没有预训练模型,EA 将以随机参数生成模型。您可以从随机轨迹中收集数据。
关于 ResearchRealORL.mq5 的更多信息,请参阅文章。
- www.mql5.com
在 trajectory.mqh,mamba 文件夹
中的第 2-4 层(第 604 行左右),我认为有一个问题:
,将 new CLayerDescription() 移到 Mamba 循环内,这样 3 层中的每一层都有自己的分配
,我是这样写的。
for(int i = 2; i <= 4; i++) { if(!(descr = new CLayerDescription())) return false; descr.type = defNeuronMambaOCL; descr.window = BarDescr; //窗口 descr.window_out = 4 * BarDescr; //内部尺寸 prev_count = (int)(descr.count = HistoryBars); //单位 descr.batch = 1 e4; descr.activation = None; descr.optimization = ADAM; if(!encoder.Add(descr)) { delete descr; return false; } }
谁能告诉我是对还是错?
在 trajectory.mqh 中,mamba 文件夹中的第 2-4 层(第 604 行左右)
我觉得有一个问题:
在 Mamba 循环内移动了 new CLayerDescription(),因此 3 层中的每一层都有自己的分配
下面是我的写法。
谁能告诉我是对还是错?
下午好,Seyedsoroush Abtahiforooshani。
在这种情况下,我们并不形成一个层,而只是对其结构进行描述。程序会根据描述生成神经元层。在初始变体中,当 descr = new CLayerDescription() 在数组外形成时,我们为单层形成一个 descr 对象,并按要求的次数传递其指针。在形成模型层时,descr 对象不会改变。这就是为什么神经元层的结构完全相同,但每个神经元层都有自己的参数。
当你将对象形成移入一个循环时,正在创建的模型不会有任何变化。我们只是创建了额外的descr 复制,这些 复制将在模型形成后立即删除。这将在形成模型时增加一些额外的操作和内存消耗。这对模型操作没有影响。
新文章 交易中的神经网络:状态空间模型已发布:
最段时间,大型模型适配新任务的范式变得越来越普遍。这些模型依据广泛的数据集进行预训练,其中包含来自各种领域的任意原生数据,包括文本、图像、音频、时间序列、以及更多。
尽管这个概念与任何特定的架构选择无关,但大多数模型都基于单一架构 — 变换器及其核心层自注意力。自注意力的效率归因于它能够在情境窗口中密集地引导信息,从而能够为复杂数据建模。然而,该属性有本质上的局限性:无法针对超出有限窗口的任何东西建模,以及相对于窗口长度的二次缩放。
对于序列建模任务,另一种替代方案涉及在状态空间中使用结构化序列模型(空间序列建模,SSM)。这些模型可解释为递归神经网络(RNN)与卷积神经网络(CNN)的组合。这类模型可以遵照序列长度的线性或近线性缩放极其有效地计算。甚至,它还具有固有机制,即针对特定数据模态中的长期依赖关系进行建模。
论文《曼巴(Mamba):配以可选性状态空间进行线性-时间序列建模》中介绍了一种启用状态空间模型进行时间序列预测的算法。该论文提出了一类新的选择性状态空间模型。
作者:Dmitriy Gizlyk