文章 "从头开始采用 MQL 语言进行深度神经网络编程" - 页 5

 
深度网络参数以外部变量的形式,灵活性太差。
 

我修改了 "bodyPer "输入值。我不再简单地加载相对长度,而是计算以下值:bodyPer=0.5+((close-open)/p100)/2;

这样,除了相对长度,变量还能捕捉蜡烛的方向。我想,这可以为第 4 个变量腾出一个位置。

 

int error=CandlePatterns(rates[0].high,rates[0].low,rates[0].open,rates[0].close,rates[0].close-rates[0].open,_xValues);

这里我们传递的是尚未形成的蜡烛图的数据。实际上,当蜡烛打开时,所有参数都是一样的。所有参数都将是 =rates[0].open

 
Vasily Pototsky #:

int error=CandlePatterns(rates[0].high,rates[0].low,rates[0].open,rates[0].close,rates[0].close-rates[0].open,_xValues);

这里我们传递的是尚未形成的蜡烛图的数据。实际上,当蜡烛打开时,所有参数都是一样的。所有参数都将是 =rates[0].open

不正确!

int copied=CopyRates(_Symbol,0,1,5,rates);

这里不是从零条开始复制,而是从第一条开始复制,所以这里的

CandlePatterns(rates[0].high,rates[0].low,rates[0].open,rates[0].close,rates[0].close-rates[0].open,_xValues);

将是最后一栏的值...

我认为没有必要复制 5 个条形图,像这样复制过去的 1 个条形图就足够了:

int copied=CopyRates(_Symbol,0,1,1,rates);
 

嗨,Anddy,你做得太棒了!!我正在分析你的代码,以便调整我的策略!

我正在分析你的代码以适应我的策略,到目前为止,我可以说你的 DNN 非常棒!感谢您的分享。

我只有一个问题:我不知道在什么情况下使用 "yValues[2]>0.6"。在对不同资产进行多次尝试后,没有一笔交易因为这个条件而关闭。这是否正确?

谢谢!


Alexandre

在本论坛中,请用葡萄牙语发表评论。请使用自动翻译工具或在其他语言的论坛中发表评论。

 
每当趋势变量发生变化时,训练结果总是不同,这是为什么?

代码中存在逻辑错误!

   double trend=0; // также при trend=100 результаты много лучше и больше количество точек оптимизаций!? 
   if(uod>0)
     {
      highPer=high-close;
      lowPer=open-low;
      bodyPer=close-open;
      trend=1;

     }
   else
     {
      highPer=high-open;
      lowPer=close-low;
      bodyPer=open-close;
      trend=-1; // стоял ноль!
     }
 
Nikolai Kalinin #:
每当趋势变量发生变化时,训练结果总是不同,这是为什么?

代码中存在逻辑错误!

激活函数的特殊性。

层数越多,衰减越大--数值会更接近 0。

偏移量稍微解决了这个问题。

因此,当阈值设置为 0.6 时,大部分可能的集合都会被丢弃。如果输入的是一个或几个大数字,那么即使是直通,也会有更多的可能值进入神经网络的末端。

达到或跨越阈值边界的值越多,神经网络拟合(记忆路径)价格图表的位置或机会就越多。
 
Ivan Butko #:



激活函数的特异性。

层数越多,衰减就越大--数值会更接近 0。

偏移可以稍微解决这个问题。因此,当阈值设置为 0.6 时,大部分可能的集合都会被丢弃。如果输入的是一个或几个大数字,那么即使是直通,也会有更多的可能值进入神经网络的末端。

达到或跨越阈值边界的数值越多,神经网络拟合(记住路径)价格图表的位置或机会就越多。

无论如何,任何类型的优化训练的结果总是千变万化的,这让人对其在实际交易中的适用性产生了一定的怀疑--在重新排序组合中总会有更好的权重参数。如何解释 NS 的这种特殊性?

 
Nikolai Kalinin #:

无论如何,任何一种优化方法的训练结果都是千变万化的,这让人对其在实际交易中的适用性产生了一定的怀疑--在对组合进行重新排序时,总会有更好的权重参数。如何解释 NS 的这种特殊性?

您非常重视这种 NS,事实上,所有 NS 以及与 MO 有关的一切,一般来说 - 只要有数字乘以数字以及激活函数中的加法器 - 都会与图表相匹配。

此外,定价是一个非稳态过程。每次都会有新的数据,如果将图表划分为不同的模式,它们在历史数据中的比例往往会各占一半。

NS 适用于静态系统,具有重复性。

但在外汇交易等领域,您需要更先进的智能系统。

NS 本身就是对价格路径的记忆,如果新数据量超过乘法得到的数字的可能组合(或者简单地说 - 最简单的 NS 结构有两到三个输入),则对结果进行平均。

深入研究、构建架构、增加神经元和层级是很有趣的。但是,这绝对是无用的,比穿越 mashka 强不了多少。
 
Ivan Butko #:

你把这个 NS 看得很重要,事实上,所有 NS 以及与 MO 有关的一切,一般来说--只要有数字与数字的乘法运算以及激活函数中的加法器--都会与图形相匹配。

此外,定价是一个非稳态过程。每次都会有新的数据,如果将图表划分为不同的模式,它们在历史数据中的比例往往会各占一半。

NS 适用于静态系统,具有重复性。

但在外汇交易等领域,您需要更先进、更智能的系统。

NS 本身就是对价格路径的记忆,如果新数据量超过乘法得到的数字的可能组合(或者简单地说 - 最简单的 NS 结构有两到三个输入),则对结果进行平均。

深入研究、构建架构、增加神经元和层级是很有趣的。但是,这完全没有用,比穿越马什卡(mashka)好不了多少。

伊万,谢谢你的解释。任何统计都有重复的倾向。原则上,如果在优化(训练)NS时使用积分指标,那么我们就可以通过点来了解从无知到知识的转变是如何发生的,以及何时发生--如何更好地进行交易。寻找重要变量是另外一门学问。您是否设法解决了输入缩放超过 4 倍的问题?