The main advantage of OpenNN is its high performance. It is developed in C++ for better memory management and higher processing speed, and implements CPU parallelization by means of OpenMP and GPU acceleration with CUDA.
N+1 совместно с МФТИ продолжает знакомить читателя с наиболее яркими аспектами современных исследований в области искусственного интеллекта. В прошлый раз мы писали об общих принципах машинного обучения и конкретно о методе обратного распространения ошибки для обучения нейросетей. Сегодня наш собеседник — Валентин Малых, младший научный...
事实上,他们说在互联网和C++中存在大量的神经元。但我还没有找过他们。
http://www.opennn.net/
https://www.neuraldesigner.com/
我开始探索神经网络。
我正在寻找可以直接在MT5中实现的选项。
我对使用ALGLIB(https://www.mql5.com/ru/articles/2279)的变体感兴趣,但从网络描述来看,它是一个没有反馈的顺序网络。而缺点是,它只能由一个处理器线程(处理带有神经网络的专家顾问)来训练。
我认为在文章https://www.mql5.com/ru/articles/497 的神经网络中加入2个隐藏的顺序层,然后在测试器中通过完全的蛮力或遗传来训练它,这并不是太困难。但在这种情况下,你可以使用更多的计算线程(你的处理器的核心,在网络和云中)。我弄得对吗?
在训练这样的网络时,如何为正确的答案(购买和销售地点)添加人工指示?
也许在某个地方已经有了一个多层顺序网络的库?
另外,我不太理解使用内层的用处,对于外汇/股市交易的目的。添加它们有意义吗?为什么?
MLP不利于市场预测,见上述视频,它需要RNN,即有记忆的网络。
https://nplus1.ru/material/2016/11/04/recurrent-networks
然而却没有令人满意的交易结果,甚至在演示中也是如此!
这是一个优化的问题,现在还没有必要对所有的版本进行测试,等我完全实现了所有的功能之后再进行测试。
训练一个神经网络(NS)来跨越两个MA的实验失败了。它被训练为只识别向上的交叉点。
在实验中,选择了NS-3,3,3,1,并对其进行了测试,用于训练和识别人工创造的模式。然而,在学习识别MA后,没有一个交叉点被识别。原因是--NS需要更多的对比度图像,并不关心输入之间0.01-0.1的所有差异。
对于一个给定的NS结构,在不低于0.2-0.3的信号差时,很可能获得可靠的识别。
MLP你所有的时间和会给出这样一个烂摊子,我已经用他们做了实验,没有办法拿起层 - 然后重新训练,然后重新训练不够的层,然后他们的数量
即使在演示中,我也看不到令人满意的结果!
没有人会花几个月的时间制定一个策略,然后在模拟账户上夸夸其谈。这种东西是在真实的基础上进行交易的,而交易历史对所有人都是隐藏的。我甚至在论坛上看到有人故意在两个经纪商那里交易,在一个经纪商那里轮流亏损,在另一个经纪商那里补偿损失,这样,连经纪商都不知道哪些交易是用策略做的,哪些是假的。
有结果了。有时,好的预测器组合和模型会带来几个月的利润,更多时候--更少。但他们被其他人所取代。
我个人认为--神经元、森林、回归--所有这些对外汇来说都太弱了。原因是价格行为一直在变化,今天有利可图的规则在一周前可能是无利可图的。而标准的方法--采取几个月的指标和价格并训练神经元--意味着它必须为所有两个月的价格行为找到相同的规则。而且没有这样的规则,没有人知道它会发现什么,但99%的时候它都是错的。有时,该模型可以很幸运地落入那1%,但它离圣杯太远了,这样的专家顾问通常交易良好,直到第一次止损,然后可以被抛出。
我正在研究模式识别的模型,这些模型研究历史上类似模式后的价格行为,并利用这些统计数据进行交易。
我还没有在R中看到一个能满足我所有需求的软件包,我有一个从别人那里零散组装的模型,加上我自己的自行车。我所看到的最接近模型的描述是在另一个主题中,我建议从这个开始建立你的圣杯(下面引用)。在这个过程中会出现新的问题,你必须对它们进行思考和实验。
关于交易、自动交易系统和策略测试的论坛
分析模式最重要的统计学特征,并在此基础上选择一种交易方法。
Vladimir, 2017.04.06 06:20
在代码库中查找我的最近的邻居指标。该方法非常简单。设置当前模式的长度,从历史上找到类似的模式(例如使用相关性作为模式之间的距离),通过加权他们各自的预测,从过去的模式预测未来的价格行为。这与聚类,或RBF,或SVM,或GRNN基本相同。这完全取决于你如何衡量当前模式与过去类似模式之间的距离。阅读关于GRNN和贝叶斯。那里的预测理论是用统计分布 来描述的。关于GRNN和上述预测方法有很多文章,而这一切都可以归结为一个简单的公式。
预测 y = SUM y[k]*exp(-d[k]/2s^2) / SUM exp(-d[k]/2s^2)
其中y[k]是第k个过去的模式,d[k]是第k个模式到当前模式的距离。如果距离有高斯分布,那么d[k]=(x-x[k])^2。对于一个任意的(超高斯)分布,d[k]=|x-x[k]|^p,其中你选择p取决于你是想给最近的邻居更多的权重(大p),还是像社会主义那样给所有邻居几乎相同的权重(小p)。如果p=0,我们就有完全的社会主义。
在熟悉了最近的邻居和GRNN之后,下一个明显的问题出现了。如果考虑到时间轴的扭曲(即过去的模式可能看起来像当前的模式,但在时间上被拉伸或压缩),如何测量当前模式和过去模式之间的距离。这就是问题所在。
有谁试过将遗传编程作为一种ML方法?
像混沌猎人?
MLP不适合用于市场预测,见上述视频,它需要RNN,即有记忆的网络。
https://nplus1.ru/material/2016/11/04/recurrent-networks
如果我没有弄错的话,RNN在MT5中的实施将是非常困难的,好的结果需要购买或内部开发,需要巨大的劳动力成本。
如果你向MLP发送关于当前柱状体的价格和指标信息,以及之前10-30个柱状体的相同信息,这将是一种记忆。有些神经元会处理当前的状态,有些神经元会处理最近的过去的情况发展。
在手动交易时,我们也要看过去的几个柱子,而不仅仅是看指标的当前状态。
很明显,计算量会增加,这就是为什么我对将计算量从一个核心转移到处理器、网络或云的所有核心的可能性感兴趣。这怎么可能做到呢?至少对MLP来说是这样。
有谁试过将遗传编程作为一种ML方法?
像混沌猎人?
很明显,计算量会增加,这就是为什么我对将计算从一个核心转移到处理器的所有核心、网络或云的可能性感兴趣。这怎么可能做到呢?至少对MLP来说是这样。
在OpenCL上,如果你不偷懒,就不会这样做 ))