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

 
mytarmailS:
谢谢你的澄清,我现在完全理解了你的意思,遗传算法 在这里能帮上忙吗?而不是射频,我有不少有趣的想法来实现一个目标,想试试......
好吧,我们可以考虑一下。例如,想象一下,在每个迭代中,神经网络不做基于目标偏离预测的标准误差反向传播,而是得到数据,在上一版本的尺度真实交易中与理想相差这么多点。并根据这些信息更新权重。也就是说,信息应该是一个平行的流向机器。也许,这可以做到。
 

有可能在R中这样做吗?

关于我自己:我不是一个程序员,R是我的第一门语言,我已经学了一个半月了。

 
mytarmailS:

有可能在R中这样做吗?

关于我自己:我不是一个程序员,R是我的第一门语言,我已经学了一个半月了。

下面是一个向NS提供交易结果信息的大致教学过程。好吧,你可以尝试写你自己的函数,并把它作为一个自定义的健身函数送入一些R包。但首先我们需要找出哪个R包允许这样做。可能人们不得不自己写NS,并在一个单独的包中做它的优点。( R本身很慢。

问题是,这是一个非常不寻常的案例。通常情况下,健身功能是不可定制的,据我所知有一个例外。我所做的最多是在caret包中写了我自己的函数,其最大值用于在交叉验证期间选择一组训练参数。但与此同时,机器本身也是以标准的方式进行训练。也就是说,我的解决方案并不完全是我需要的。你看到了吗?

 
谷歌搜索到...是的,你必须自己写,但伙计,这种标准的目标定位是如此有限的方法,令人讨厌......
 
mytarmailS:
谷歌搜索到...是的,你必须自己写,但伙计,这种标准的目标是如此有限的方法,这很烦人......

我们将不得不继续寻找。

http://stackoverflow.com/questions/25510960/how-to-implement-own-error-function-while-using-neuralnet-package-in-r

/go?link=https://stackoverflow.com/questions/36425505/own-error-function-including-weights-for-neuralnet-in-r

看起来神经网络包允许你创建自己的健身函数,它应该是可分的。我得考虑一下...你怎么看?

how to implement own error function while using neuralnet package in R?
how to implement own error function while using neuralnet package in R?
  • stackoverflow.com
I am trying to implement a customized error function in package neuralnet in R. Normally ’sse’ and ’ce’ which stand for the sum of squared errors and the cross-entropy are used to calculate...
 

第二个链接说,你需要重写软件包中的代码。

你可以使用第一个链接来写你自己的错误,但我们需要知道之前的权重,以实现你建议的概念,或者我错过了什么? 说实话,我对神经网络的工作原理有一个非常模糊的概念

 

训练神经网络(反向传播)的过程通常如下:向其输入一个训练实例,为其确定一个结果,与期望的结果进行核对,并计算误差。那么任务就是要减少这种误差。由于神经网络中的所有计算只是输入数据与系数的加法和乘法顺序,你可以精确地计算出你需要改变系数的程度,以减少误差。一般来说,你可以找到在第一步就将误差减少到零的系数,但没有人这样做,因为它减少了一个具体例子的误差,但明知会增加所有其他例子的误差。

这种逐步减少误差的做法是利用所有的训练例子反复传递,逐一进行。也就是说,你不能用一些夏普比率作为必要的交易结果。 误差可以为每个训练实例单独计算。你可以使用你自己的函数来计算误差,但它也会对每个训练实例单独计算,而不是对所有实例一次计算。我想不出如何将整个贸易估算划分为所有单独的例子。

我同意通过 "之 "字形或条形收盘价交易不是最理想的交易。打开和关闭交易时最好也考虑到点差、缩减、交易时间段。我们可以制作一个使用移动平均线 或其他指标的专家顾问,对其进行优化以获得最大的利润率,并在训练数据中使用这些交易作为必要的结果。但我将在获得稳定的结果后,至少在之字形上做这样的事情。

 
Dr.Trader:

训练神经网络(反向传播)的过程通常如下:向其输入一个训练实例,为其确定一个结果,与期望的结果进行核对,并计算误差。那么任务就是要减少这种误差。由于神经网络中的所有计算只是输入数据与系数的加法和乘法顺序,你可以精确地计算出你需要改变系数的程度,以减少误差。一般来说,你可以找到在第一步就将误差减少到零的系数,但没有人这样做,因为它减少了一个具体例子的误差,但明知会增加所有其他例子的误差。

这种逐步减少误差的做法是利用所有的训练例子反复传递,逐一进行。也就是说,你不能用一些夏普比率作为必要的交易结果。 误差可以对每个训练实例单独计算。你可以使用你自己的函数来计算误差,但它也会对每个训练实例单独计算,而不是对所有实例一次计算。我想不出如何将整个贸易估算划分为所有单独的例子。

我同意通过 "之 "字形或条形收盘价交易不是最理想的交易。打开和关闭交易时最好也考虑到点差、缩减、交易时间段。我们可以制作一个使用移动平均线 或其他指标的专家顾问,对其进行优化以获得最大的利润率,并在训练数据中使用这些交易作为必要的结果。但我将在获得稳定的结果后,至少在之字形上做这样的事情。

是的,NS以你描述的方式工作。对每个样本的误差进行计算,然后,通过整个集合后,我们得到健身函数的值:均方根误差,或中位数误差,或平均绝对误差。基于这个值,权重会根据反向传播算法中计算的梯度进行相应的更新。

这里我们讨论的是,我们应该把我们自己的而不是提到的基于模拟机器信号交易的健身函数。因此,对于NS处理的每个例子,你可以创建一个虚拟交易(如果输出信号突破预定的阈值)。而在所有例子的最后,我们可以计算一些综合统计,例如夏普统计。并且已经从它的权重将被反分配处理。

 

感谢Dr.Trader 的详细说明!

你知道,可能最好的和最正确的是教授逆转本身,甚至是同一个之字形,也就是给出三种状态1)向上调头

2) 下降的逆转

3)不是调头

但不管教不教,要抓反转是相当困难的,再加上观察次数的倾斜,班级 "不反转 "的情况会多出几十倍甚至上百倍。

那么你使用什么预测因素,结果如何?

我刚刚开始使用光谱分析,第一次测试结果比用指标要好得多,我通过拨浪鼓运行,训练和测试的误差大约是6%,但当我开始使用R时,如果我没有弄错的话,误差上升到30%,San Sanich说这是再训练,所以我还是不大明白

另外,有一种方法可以通过光谱分析找出哪些时期在市场中占主导地位,然后你可以在指标中使用这些时期,因为它们将是适应性指标,但不适应历史。

 
mytarmailS:

第二个链接说,你需要重写软件包中的代码。

在第一个链接中,你可以写出你自己的错误,但我们仍然需要知道以前的权重来实现你提出的概念,还是我错过了什么? 老实说,我对神经网络的工作原理理解得很差。

嗯,首先,我不是在建议。我在把你的直觉翻译成可以编码的形式。你建议机器的任务是将交易曲线保持在合理范围内。)这就是要做的选择。

第二,第一个链接显示的正是这样做的方法。唯一的限制,在文件中也有提及。此外,我们不需要砝码,我们是专门为提出问题的人需要的。你不能只是在一个函数中获得权重。你需要砝码做什么?你为什么一开始就提出这些问题呢?

你基本上可以使用所有可以被微分的误差函数。