交易中的机器学习:理论、模型、实践和算法交易 - 页 520

 

理论家的整个问题是得出现实中不存在的理论。但现实有时类似于某种理论。现在只剩下确定有多相似?而这正是理论测试员的工作。 坦率地说,交易员就像一个测试员。他在他的经纪人那里测试一个策略或一个理论的存款(最无畏的人只是做而不使用任何理论:)) ...但胆小的人(如我)......。让我们这样说吧......沉浸在交易理论中!它到底是如何工作的呢?我们不能确定。 我们只能知道什么可能会影响。 我认为我们需要了解到底是什么在影响?例如加密货币的上涨? 油桶的下跌。 日元的剧烈波动,等等。 我们从哪里获得这些信息?老实说......我不知道。我在看以前的经验......他们用来获取数据的资源就这样消失了,而且...所以基本面分析是为快速和无畏的交易者准备的。 好吧,我说说现实...我们所能做的...是为了抓住历史上的趋势和这种趋势的反复出现。我们可以直截了当地...

1.在一定时间内抓住同样的东西(下降趋势、上升趋势、波段、停止、突破)。

2.尝试一些对趋势有贡献的参数(阻力线、支撑)。

3.对重大或已知事件的价格反应。

我不知道还有什么能给我们一个信号? 我们可以用参数在图表上画出价格......它看起来像一个萨满交易员在用手鼓跳舞!"。人们其实很喜欢 :) 嗯,萨满知道什么是什么 :) 当然,如果能从可靠的来源了解信息就更好了,但最近可靠性往往越来越低。 所以我们只是愚蠢地......复制我们的东西 :) 我们怎么能做到呢? ...嗯......。...定义一点复制的参数 会是什么呢? 是吗?会是什么呢?

 
尤里-阿索连科

我不知道这是怎么一回事?

一切都与乐器上的一切相关联。而这是不可避免的,因为所有的东西都是由同一时间序列、同一数据的转换而得到的。

顺便说一下,用PCA你可以尝试摆脱多重共线性,降低输入的维度,或进行奇异分解

原则上,我对将NS与一段历史相适应没有任何问题,我对适应性模式和自我学习现在有问题。我还没有找到任何文章或其他信息能很好地涵盖这个主题......我有自己的小发展,但到目前为止效果并不理想。这就是为什么我关于射频和适应性系统的文章暂时停滞不前,因为我想尽可能多地涵盖适应性的主题

现在我看到了自适应预测器的解决方案,它将在不同的图表上给出+-正确的信号,而基本的ns,事实上,将只训练一次或不经常训练,即我们应该摆脱问题--何时重新训练NS和重新训练本身的问题,当市场变化时预测器停止工作。

 
马克西姆-德米特里耶夫斯基

顺便说一下,通过PCA,你可以尝试摆脱多重共线性,降低输入的维度,或进行奇异分解

我对适应NS的一点历史没有问题,我现在对适应性模式和自我训练有问题。我还没有找到任何文章或其他信息能很好地涵盖这个主题......我有自己的小发展,但到目前为止效果并不理想。这就是为什么我关于射频和适应性系统的文章暂时停滞不前,因为我想尽可能多地涵盖适应性的主题

在一个星期前的模型上得到了这个结果。

x - 交易号码,y - p中的总利润,以固定手数进行交易。

我必须说我很惊讶。我已经拼凑出一个真正的系统,大约有一个星期了。

 
尤里-阿索连科

我在一个星期前的模型上得到这个结果。

x--交易数量,y--p中的总利润,交易的手数不变。

我必须说我很惊讶。我已经铆足了劲儿做了一个星期的真正的系统。

我有一个好主意,用真正的传播和政委,但我宁愿看到结果......+ 我将使用滑点进行短线交易。

并转发 :)

 
马克西姆-德米特里耶夫斯基
如果他们不习惯,他们将以与游戏开始时相同的方式使用。+ 如果交易是短线,则有滑点

该模型似乎考虑到了这一切。据估计,每笔交易都会损失30便士,无论成功与否。(这些都是期货)--这对他们来说是个大问题。在调试期间不使用的数据上进行测试 在期货上调试 -6.17 - 在后来的期货上测试 -9.17.如果可能的话,一切都考虑到了)。

然而,当然会有细微的差别。我想,像往常一样,)真实的情况会有些糟糕。

现在我已经到了交易开启的时刻。我正在锻炼--我在网上看了大约一打交易的条目。似乎正在正确输入。

 

NS的SOFTMAX版本在ALGLIB上有问题。所有的答案都偏向于第一个输出(对我来说是BUY)。
同样的NS数据--有3个输出的回归(有线性激活)给出了更可靠的结果。

买入 卖出 NA
0.10302356, 0.01091621,0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789,0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507,0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769,0.86132762
0.00201949, 0.00497863,0.99300189

在>0.5会给出可信的答案。

顺便说一句,Les也偏向于第1种输出。

 

你的输出神经元上的激活是什么?我看到的是负值。它不应该是。你应该在输出神经元中使用softmax激活。其数值在0-1范围内。

 
格里戈里-乔宁

你的输出神经元上的激活是什么?我看到的是负值。它不应该是。你应该在输出神经元中使用softmax激活。其数值在0-1范围内。

上面的例子是来自于线性输出的回归(作为一个工作变量)。在训练期间,我从0到1进行喂食。

在softmax上,要么明显是1,要么少几百分之一;但都是在第1个输出上,其他2个输出总是=0。也就是说,ALGLIB中的softmax有问题......

 

阅读关于神经元激活功能的文章。你可以为输出提供任何你喜欢的值,但错误的激活函数会产生负值。这通常是一个双曲切线。softmax损失函数在它身上将无法正常工作。尽管这在很大程度上取决于损失函数的库和实现。例如,在Tensorflow中,损失函数softmax的输出神经元不应该有任何激活函数。为了正确使用训练好的网络,我们应该增加softmax激活。我没有ALGLIB合作过,也许他们做错了什么在任何情况下,使用softmax训练的网络都不应该给出负值。

 

当其中一个班级与其他班级相比有非常多的训练实例时,就会出现这种情况。例如,买入时有2000个训练实例,卖出时只有1000个。该神经元总是可以返回 "买入",在这种情况下,它有66%的时间是正确的。最好是使每一类的训练实例的数量相等。

原因: