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

 
阿列克谢-伯纳科夫

这是个大问题。这是在不损害学习的情况下几乎不可能解决的问题。
这里的重点是,你对过去看得越多,你就越依赖于邻近的观察。

如果你给机器提供非特定的观察,你就失去了最重要的东西--观察的独立性要求。之后,学习就会急剧不足了。而统计数字却不起作用。

为了避免这种情况,你必须减少观察,使最大回视的滞后性小于或等于减少观察的步骤。而这将导致什么?训练样本量的百倍减少。

这里要做一个妥协。观察的深度与样本中的例子数量。

我同意这是一个问题,我已经为它灰心了好几个星期......

这意味着什么?"你越是往后看,你的相邻的观察就越是依赖。 没有任何意义...

关于砍人的问题,我也不明白......。

 
mytarmailS:

我同意这是一个问题,我已经为这个问题灰心了几个星期了......

你越是研究过去,就越是依赖邻近的观察 ,这是什么意思?? "这不清楚...

还有,请澄清砍人的问题......我也不明白......。

好的。用你自己的例子。

对于时间上相邻的两个柱子,你会画出几乎100%相同的过去价格直方图。也就是说,两个训练实例会非常相似,只是因为它们在时间上是相邻的。这与统计过程的基本属性相矛盾,即观察是独立的。机器不会学习按时间顺序不变的模式,但会学习重复的模式(几乎相同)。想象一下,你在一次民意调查中采访了瓦夏200次,并试图将你发现的知识传播给1000个不同的人。
 
阿列克谢-伯纳科夫
好的。关于你的例子。

对于时间上相邻的两个柱子,你将画出几乎100%相同的过去价格直方图。也就是说,两个训练实例会非常相似,只是因为它们在时间上是相邻的。这与统计过程的基本属性相矛盾,即观察是独立的。机器不会学习按时间顺序不变的模式,但会学习重复的模式(几乎相同)。想象一下,你在民意调查中采访了瓦夏200次,并试图将你发现的知识扩展到1000个不同的人。

哦!!这就不一样了,现在一切都很清楚了 :)

1)你可以多次减少窗口的大小,那么每个切片中的部分将不那么相似。

2)你可以尽可能地增加休息时间,这也会去除一点平滑

PRICE <- cumsum(rnorm(300))+1000
layout(1:2)
plot(PRICE,t="l",ylab = "цена" , xlab = "индексы",lwd=2)
Max <- max(PRICE)
Min <- min(PRICE)
range.vector <- seq(Min, Max, length.out=200)
H <- hist(PRICE, breaks = range.vector)
          

 
mytarmailS:

哦!!那是不同的,现在都很有意义了 :)

1)你可以将窗口的大小减少几倍,那么每个切片中的部分将不那么相似。

2)你可以最大限度地提高休息时间,这也会消除一点平滑 性。

我是这样做的。伪代码。

Example1 = p[0]
步骤 = 720
随机=[0;50]
例2=p[step+random]

其中对过去的最大滞后=720

这意味着我以这样的方式进行切分,以确保观察结果不重叠。

同样的原则也需要避免对目标的依赖性,因为要看清前方。
 

首先要确定的是:你需要什么样的预测范围。这将决定你需要调查的历史深度。

看看历史深度为3000、1000、300和150条的趋势图(AUDUSD/H1)。

> library("PolyTrend", lib.loc="K:/RRO/R-3.3.1/library")
> trend3000 <- PolyTrend(price[ ,4], alpha = 0.05)
> require(magrittr)
Loading required package: magrittr
> trend1000 <- PolyTrend(price[ ,4] %>% tail(., 1000), alpha = 0.05)
> trend300 <- PolyTrend(price[ ,4] %>% tail(., 300), alpha = 0.05)
> trend150 <- PolyTrend(price[ ,4] %>% tail(., 150), alpha = 0.05)
> plot(trend3000, t="l")
> plot(trend1000, t="l")
> plot(trend300, t="l")
> plot(trend150, t="l")


这些图片是按相反的顺序插入的。

而对于3000条,方向是 "向上"。

Trend type: 3 (cubic)
Slope: 0.0000
Direction: 1 (positive)
Significance: 1 (statistically significant)
Polynomial degree: 3 (cubic)

对于较短的

#  trend1000
PolyTrend classification:

Trend type: 2 (quadratic)
Slope: -0.0000
Direction: -1 (negative)
Significance: 1 (statistically significant)
Polynomial degree: 2 (quadratic)
#  trend300
PolyTrend classification:

Trend type: 2 (quadratic)
Slope: 0.0000
Direction: 1 (positive)
Significance: 1 (statistically significant)
Polynomial degree: 2 (quadratic)
#trend150
 PolyTrend classification:

Trend type: 3 (cubic)
Slope: -0.0000
Direction: -1 (negative)
Significance: 1 (statistically significant)
Polynomial degree: 3 (cubic)

如果我对24条(一天)的预测范围感兴趣,我不需要向后看3000条。300条就够了。

祝好运






 

我觉得提前24步预测的想法值得怀疑。

在分类和回归中,你应该总是准确地提前一步预测,但例如在H1、H4和D1。在H1交易时,我们将得到H1的4和24步预测。

理想情况下,TF应该是由基本商数人为制成的。在我的例子中,我们加载H1,而不从终端获取其他。使用这种方法,我们将不会得到与00:00相关的D1,而是严格意义上的比当前小时提前24小时

 
SanSanych Fomenko:

我觉得提前24步预测的想法值得怀疑。

在分类和回归中,我们应该总是准确地预测一个步骤,但例如在H1、H4和D1。在H1交易时,我们将得到H1的4和24步预测。

理想情况下,TF应该是由基本商数人为制成的。在我的例子中,我们加载H1,而不从终端获取其他。使用这种方法,我们将不会得到与00:00相关的D1,而是严格意义上的比当前小时提前24小时

这取决于我们所预测的内容。例如,24小时的趋势预测是相当令人满意的(曲线非常平滑)。也就是说,当你需要看到曲线的 FORM,而 对精度没有 任何特殊要求时。

否则你的例子是绝对正确的(作为一个原则)。而滑动窗口选项(24小时)也是非常可行的。这在很大程度上取决于细节。

祝好运

 

快速的问题...

我一直在做一个价格分布,即一个常规的矢量,我得到了一种市场概况,但我能否建立一个真正的成交量概况,即把价格和分布中的成交量联系起来?

 
mytarmailS:

快速的问题...

我一直在做一个价格分布,也就是一个常规的矢量,我已经有了一种市场概况,但是否有可能建立一个真正的成交量概况,即在分布中连接价格与成交量?

有一些指标是以价格和成交量为基础,建立一个总体的图表。而且可以为它计算出分布。例如,Chaikin Oscillator或指标/成交量文件夹中的其他一些指标。但在外汇中,将是tick量,而不是真实的量。 虽然它们有关联,但仍然不好,最好是寻找真实的证券交易量。

 
Dr.Trader:

有一些指标是以价格和成交量为基础,建立一个总体图。而且你可以阅读它的分布。例如,Chaikin Oscillator或Indicator/Volumes文件夹中的一些其他指标。但在外汇中,它将是tick卷,而不是真实的卷。 虽然它们是相关的,但它仍然是坏的,最好是寻找真实的股票市场的卷。

我不做外汇交易,我甚至不熟悉Metatrader :)

我想在P中试验不同的配置文件,我只是不明白如何建立两个向量的分布

它不一定是数量,这是一个开始,你可以把任何东西放进档案,但它必须与价格相连,这意味着有两个向量