In the last article, we got acquainted with the Autoencoder algorithm. Like any other algorithm, it has its advantages and disadvantages. In its original implementation, the autoenctoder is used to separate the objects from the training sample as much as possible. This time we will talk about how to deal with some of its disadvantages.
要插入代码,您需要应用相应的按钮
问候,弗拉基米尔
测试 EA 的每一次通过都会产生截然不同的结果,就好像该模型与之前的所有模型都不同一样。很明显,模型在每次通过测试时都会发生变化,但该 EA 的行为却几乎没有发生变化,那么其背后的原因是什么呢?
下面是一些图片:
在 "测试 "脚本和可能的 "研究 "脚本中,买卖交易似乎没有得到充分控制。下面是一些信息:
2024.04.27 13:40:29.423 Core 01 2024.04.22 18:30:00 当前账户状态:Balance: 9892.14, Credit: 0.00, Commission: 0.00, Accumulated:0.00, Assets: 0.00, Liabilities:0.00, Equity 9892.14, Margin: 0.00, FreeMargin: 9892.14
2024.04.27 13:40:29.423 Core 01 2024.04.22 18:30:00 市场买入 0.96 EURUSD.pro sl: 1.06306 tp: 1.08465 失败 [没有钱]
除非有意使保证金超限,否则在第 275 行之后对买入手数设置简单的限制,在第 296 行之后对卖出手数设置简单的限制,就可以消除测试脚本的这种行为。
测试 EA 的每一次通过都会产生截然不同的结果,就好像该模型与之前的所有模型都不同一样。很明显,模型在每次通过测试时都会发生变化,但该 EA 的行为几乎没有发生变化,那么其背后的原因是什么呢?
下面是一些图片:
该模型采用随机政治行为。因此,在研究的开始阶段,我们可以看到每一次交易都是随机的。我们收集这些通行证,然后重新开始模型研究。然后重复这个过程若干次。当行动者找到好的行动策略时,我们就可以开始研究了。
让我们换一种方式来回答这个问题。在收集(研究)样本并对其进行处理(研究)后,我们运行测试脚本。在没有任何 "研究 "或 "学习 "的情况下,连续运行几次后得到的结果完全不同。
测试脚本在 OnInit 子程序(第 99 行)中加载经过训练的模型。在这里,我们为 EA 提供了一个在测试处理过程中不应发生变化的模型。据我所知,它应该是稳定的。这样,最终结果就不会改变。
在此期间,我们不进行任何模型训练。测试 "只会收集更多样本。
随机性是在研究模块中观察到的,也可能是在优化策略时在研究模块中观察到的。
Actor 在第 240 行被调用,以计算前馈结果。如果它在创建时不是随机初始化的,我相信情况就是这样,它的行为不应该是随机的。
您是否发现上述推理中有任何误解?
让我们换一种方式来回答这个问题。在收集(研究)样本并对其进行处理(研究)后,我们运行测试脚本。在没有进行任何研究的情况下,连续运行几次后,得到的结果完全不同。
测试脚本在 OnInit 子程序(第 99 行)中加载经过训练的模型。在这里,我们为 EA 提供了一个在测试处理过程中不应发生变化的模型。据我所知,它应该是稳定的。那么,最终结果也不应该发生变化。
在此期间,我们不进行任何模型训练。测试只会收集更多样本。
随机性在 "研究 "模块中观察到,也可能在 "学习 "模块优化策略时观察到。
Actor 在第 240 行被调用,以计算前馈结果。如果在创建时没有随机初始化(我认为是这样的),那么它的行为就不应该是随机的。
您是否发现上述推理中有任何误解?
Actor 使用随机策略。我们通过VAE 实现了它。
层 CNeuronVAEOCL 使用前一层的数据作为高斯分布的均值和 STD,并从该分布中采样相同的动作。一开始,我们在模型中加入随机权重。因此,它会产生随机均值和 STD。最后,我们在模型测试的每一关都有随机动作。在研究时,模型会为每个状态找到一些均值,而 STD 则趋向于零。