为MT制作一个Python交易系统。 - 页 11

 
Yuriy Asaulenko:

读过《从理论到实践》专题的人已经知道,我的系统和A_K2的系统大致建立在相同的意识形态上--渠道工作。唯一的区别是,我的是一年前建造的。我之前已经写过,现在这个策略已经在Python中实现和测试了,有一些小的改动,但启动它没有意义--没有什么新的期待。

由于我没有什么特别的想法,所以我在制定各种指标--其中一个指标就在上面的帖子里。我已经做了大约10个了。因此,我决定将刺猬与刺猬交叉使用:将通道中的工作与趋势跟踪结合起来,形成一个一致的系统。我还没有试过它的整体,但我已经练习了一些元素。一切似乎都很合适,但我仍有一些问题。我不能说在实践中会有什么结果,可能是什么都没有。让我们拭目以待。

Yuriy,你好!我可以下载/看看你开发的最新版本,以便发展Python知识并从中学习吗?:-)
 

以防万一,为那些使用Python的人提供新闻。3.6版已不再开发,只会有安全更新。支持率将达到21。

目前的版本是3.7。目前的是3.7.2,我在使用3.7.1和最新的Anaconda。

实际上,弄坏了我的Anaconda,当我去安装新的时候,我发现有很多变化。正如他们所说,3.7版的速度更快(我还没有注意到,我以前用得很好),语法已经更新,并增加了新功能。

 

我还没有接触到神经网络和其他ML的东西--我正在研究计量。我制作工具来测量当前的市场参数及其趋势。问题是,没有神经网络、森林树和其他Ml既不能想出也不能计算这些参数,但它们都可以使用它,并对它进行概括。

这里还有一个Python的工具。

这里只有3个小时,在1分钟TF。曲线衡量市场活动。通常情况下,市场活动甚至在价格开始移动之前就会明显增加,它是一个很好的指标,是运动开始的前兆。活动减少的开始,几乎总是进入平淡期的开始。在图片中你可以看到,该指标甚至领先于价格图上的MA(12)。

但该指标并不决定未来的运动方向。这是一件简单的事情,通过交叉点画出小的矩形,并转移方向,就像在MO分支中所做的那样,你可以在头脑中画出它们,这里有一个趋势指标))。如果我们看一下这个算法,就会发现它不仅是一个琐碎的问题,而且是不必要的和有害的--它破坏了一些指标参数。而系统会对指标进行联合处理,而且会做得更优化。

PS 有人私下里向我建议,这个指标与ATR相似。

事实上,是的,它也衡量波动性,但数学上是不同的。这就是我所理解的波动性,))在我看来,它能更好地反映交易活动。

 
关于模式 的一点看法。
 

根据论坛上某人的建议,我实现了一个卡尔曼滤波器。我是如此的赞美,如此的赞美......

一般来说,我在那里写道,不太可能有实际的结果,但尽管如此,我还是决定检查一下。

我有MA48的数字和在此MA基础上制作的卡尔曼滤波器(为了正确比较,我们应该处理同一个对象)。

嗯,是的,它的速度快了大约1.5倍,但它很可能被周期为28-30的MA取代。它们不会完全重合,但很难说MA和Kalman哪个更好。

结论:它造成了很多麻烦,但没有什么用处。当然,是为了交易的目的。我们不从事导航工作)。

 

需要为一个Python模型做多项式回归。也许你也会需要它。

源代码。

import matplotlib.pyplot as plt
import numpy as np 
from sklearn.preprocessing import PolynomialFeatures 
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Ridge
from sklearn.pipeline import make_pipeline

# Подготовка данных
x=np.linspace(-5,5,num=100)
Y =np.array([(0.13*x1**3-0.5*x1**2-0.8*x1-0.1) for x1 in x])
# график исходной кривой.
plt.plot(Y)
X=x[:, np.newaxis]
N=3
# полином регрессия
model=make_pipeline(PolynomialFeatures(N, include_bias=False), Ridge())
model.fit(X,Y)
y_plot = model.predict(X)
# накладываем поверх графика линию регрессии
plt.plot(y_plot)

图。

这不是一个图表,而是两个。它们是完全叠加的,这是可以预期的,因为原始曲线和回归都是3度的多项式。误差为1e-3的数量级。

 

另一个多项式回归模型。其误差已经达到1.0e-15的程度。

import matplotlib.pyplot as plt
import numpy as np 
from sklearn.preprocessing import PolynomialFeatures 
from sklearn.linear_model import LinearRegression
#from  sklearn.linear_model import Ridge
#from  sklearn.pipeline import make_pipeline

#  Подготовка данных
x=np.linspace(-5,5,num=100)
Y =np.array([(0.13*x1**3-0.5*x1**2-0.8*x1-0.1) for x1 in x])
plt.plot(Y)
X=x[:, np.newaxis]
N=3
#  расчет и вычисление линии регрессии
poly=PolynomialFeatures(N,include_bias=False)
Xm=poly.fit_transform(X)
reg = LinearRegression().fit(Xm, Y)
y_plot=reg.predict(Xm)
#  график линии регрессии
plt.plot(y_plot)

我不显示图表,它没有变化。见上面的帖子。

 

现在看看MA是否能取代回归线。见图片。

绿色--回归线(三度多项式),橙色--MA(350)。

我花了很长时间来选择它,但我甚至无法与它紧密匹配。这个MA,也许是最好的之一。顺便说一下,这也是关于可调整指标的有用性)。

在未来,我们可能会用回归线进行一些更多的实验。

 
Yuriy Asaulenko:

根据论坛上某人的建议,我实现了一个卡尔曼滤波器。我得到了这么多的赞美,这么多的赞美...

- 我不喜欢帕瓦罗蒂,他的口音很难听,他不能打音符......

- 你在帕瓦罗蒂的音乐会上吗?

- 没有,拉比诺维奇在电话中告诉我。

 
TheXpert:

- 所以我不喜欢帕瓦罗蒂,他的口音很难听,他不能打音符......

- 你听过帕瓦罗蒂的音乐会吗?

- 没有,拉比诺维奇在电话中告诉我。

如果你要在交易中实现卡尔曼滤波,我可以给你发一篇文章。它是一种经典的算法,没有任何人工思维。但你必须自己编程。 这篇文章只包含数学。你将形成你自己的观点,你不会被拉比诺维茨所引导)。