Piligrimm 的软件产品 - 页 4

 

到皮里格里姆

谢谢你!
你已经解释得很清楚了。
足够以编程方式实现你的方法。

 

作为使用指标创建交易系统的例子,我将以简化版本给出我在 " 建立交易系统的例子 " 部分描述的神经网络交易系统中实施的策略 周末过后,我将开始调试这个交易系统,完成后我将把它作为使用指标的一个例子贴在这个主题上。在交易系统中,由 ,我使用了几个指标。作为一个例子,我将给出仅基于其中两个指标的策略, "Kristi_GrafModelWav","指标趋势"。但我首先要对这些指标的原则说几句。

"Kristi_GrafModelWav" -建立在以下形式的多项式基础上

GR1[i][0] = 0.6*(0.5*(-0.00000808108 +1.64312*(SD[i+5][4]-SD[i][4]) -0.387988*(SD[i][1]-SD[i][2]) +0.598535*(SD[i][2]-SD[i][3])

-0.468099*(SD[i+1][3]-SD[i][2])-0.461584*(SD[i+1][4]-SD[i][1])+SD[i][3])+0.5*((SD[i+2][1]-SD[i][3])-(SD[i+3][1]

-SD[i][4])+0.00000000861016*(SD[i][2]-SD[i][3])+(SD[i+19][3]-SD[i][4])+0.3*SD[i][3]+0.7*SD[i][4]))+0.4*((SD[i][1]

-SD[i+10][3])-(SD[i][1]-SD[i+10][4])+0.00000000861016*(SD[i][2]-SD[i+10][3])+(SD[i][3]-SD[i+10][4])+SD[i][4]);.

SD信号 是利用 "滑动窗口 "原理获得的,该原理将报价历史扫描到一定的深度并改变其宽度 多项式的训练是 根据EURUSD 报价历史 M1 获得的信号进行的 SD信号 通过了一组根据不同参数调整的小波变换 训练是使用线性回归算法和形式化的神经网络 简化为多项式的形式进行的。 训练多项式的目的是通过纳入过去历史中的延迟参数和过滤次要和干扰因素来增加输入信号的信息量。训练多项式的另一个目的,是在报价的基础上创建一组信号的合成,携带主信号的儿童特征,并重叠其可能变化的频谱。这样做是为了确保将输入这组信号的神经网络有机会 "捕捉 "输入信号中包含的不同谐波,并进行定性的训练。虽然培训是在 EURUSD M1 进行的,但该指标在任何工具、任何时期、任何市场上都能发挥作用该指标形成了一个由40个合成信号组成的小组。

"指标趋势 " 在其工作的基础上 使用了 由我开发的阈值采样算法,其步骤与报价的动态变化成比例 地进行了重建。 由于这种采样,获得了只对应于信号极端点的样本,信号被压缩,由于消除了噪音和不明显的波动而进行了深度过滤。每个条形图上的信号重建是通过相邻两个采样点之间的插值完成的 。在上面的图片中,红线,你可以看到每个柱子上重建的信号,断点对应的是采样点。指 示器功率 "和"指示器 通道 "指标是根据相同的原则建立的 。对信号的这种压缩允许以相对较少的采样点获得对报价历史的深入研究,当离散样本被送入输入时,这大大减少了神经网络训练的时间并提高了准确性。

建立基于两个指标的交易系统的策略的实质如下。指标 "Kristi_GrafModelWav"被用作输入信号的来源,指标 "指标趋势 "被用作 训练神经网络的来源信号 训练的目的是对未来的采样点进行预测,这将决定价格运动的方向和大致水平。为了同步这些指标,让我们设置输入样本的相同长度 ,LengthSample 在指标设置中,让我们设置从数组的开头开始以索引方向保存数据到磁盘的权限。在 "指标趋势"指标设置中 ,让我们设置保存离散样本的模式,那么离散点的价格水平(图片中的断点)和样本的序号LengthSample将被写入磁盘 ,让我们设置指标操作的静态模式。 这一点上,在每个新条形的到来,整个历史将被重新计算,并形成一个覆盖整个样本长度的数组 LengthSample。在由指标 "指标趋势 "创建的数组中 ,我们收到的计数将被用作神经网络的训练数据。现在我们应该形成一个数组,将其送入神经网络的输入。指标 "Kristi_GrafModelWav "在磁盘上 写入一个由40列组成的数组,对应于其输出信号, 长度为LengthSample。我们需要从这个数组中选择与 "指标趋势"指标的采样点相对应的行 这可以很容易地使用从 "指标趋势 "指标获得的数组来完成 它的第二列包含采样点的样本序 号。 由于这两个指标的输入样本长度相同,这些数字将对应于 "Kristi_GrafModelWav " 指标的数组 通过选择 "Kristi_GrafModelWav " 指标的适当行 ,我们将执行 "Kristi_GrafModelWav "指标数据的采样 ,与 "指标趋势 "指标同步 因此,我们得到了用于训练神经网络的输入阵列。现在我们要对神经网络进行训练。我们现在需要使用经过训练的神经网络来进行计算,并实时进行预测。要做到这一点 "Kristi_GrafModelWav "指标设置中 设置 LengthSample = 1。在每个新条形的到来时,一个数组将被写入磁盘,其中包括一个包含所有40个信号值的单行。我们应该 根据 学习算法 "指标趋势"指标的新离散点形成的时刻计算神经网络 为了确定这些时刻,我们只需要使用两个全局变量,它们是由 "指标趋势 "指标 形成的 只要这两个全局变量的值相对变化,就意味着一个新的采样点已经形成。在 一点上,我们应该从磁盘上读出指标 "Kristi_GrafModelWav "的数据数组 ,将其送入训练好的神经网络的输入端,并进行计算。我们将在最后一个采样点形成的时刻得到下一个采样点的预测。这就是基于我建议的指标的最简单形式的交易系统策略。你可以使用所有指标建立更复杂的策略,它将提高预测的准确性和可靠性。

 

为了更好地了解指标的功能,下面是以"指标趋势 " 指标为例的使用说明。如果有任何意见、纠正或补充的建议,我将很乐意听取。如果你有兴趣,我还可以提供使用其他指标的说明。

=======================================================================================================

指标趋势指标。

该指标 "指标趋势" 用于为该指标所连接的仪器创建趋势模型。"指标趋势"在其工作的基础上使用了我开发的阈值采样算法,该算法具有可重建的步骤,与报价的动态变化成正比。由于这种采样 ,获得了只与信号的极端点相对应的样本,信号被压缩,并通过去除噪声和不重要的波动进行深度过滤。通过相邻两个采样点之间的插值,在每个条形图上的信号被重建

该指标适用于任何工具、任何时期、任何市场。该指标可用于设计机械交易系统,也可用于手动交易。

该指标在一个新柱状体的到来时处理数据。该指标在两种模式下工作:静态和动态。在静态模式下,指标为指定的历史样本的整个长度建立一个趋势模型,并在一个新条形的到来时重新计算其整个长度,创建指定长度的模板,这些模板可以在图表上显示并保存到磁盘。在动态模式下,指标只对新收到的条形图进行计算,随着新数据的到来,逐渐累积计算值。处理后的历史长度由 "属性-输入参数 "标签中的"LengthSample"变量决定,历史长度可以是任何长度。

将指标计算出的信号值保存到磁盘,并在设置中赋予相应的权限,有两种不同的方式。

1).保存每个条形图上的信号值。

2).保存数值只 采样点 (趋势反转)。

最后两个采样点的信号值 ,也保存在全局变量中,全局变量的名称可以改变,它允许你为一个仪器设置任意数量的具有不同阈值水平的指标,并通过全局变量 组织与专家顾问或其他指标的通信。当指标工作时,有可能通过重建阈值系数来优化其参数。具体阈值的选择是由 ,该指标安装在哪个工具和时间框架上,以及 ,你想在该指标的基础上实施哪个交易策略。

计算结果在安装指标的窗口中的仪器图表上显示出来。

MetaTrader 4窗口的图表上安装指标时,操作参数在 "属性-输入参数 "选项卡中设置。


"指标趋势 " 指标有以下输入参数。

1). LengthSample- 被处理的历史记录的长度。

2).阈值 - 阈值系数。

3).DynamicMode - 指标的动态/静态模式。

4).SaveFileData - 允许将指标计算的数据写入磁盘的标志。

5).FileNameData - 保存数据的文件名。

6).SaveFilePointsFracture - 将指标计算的采样点写入磁盘的权限标志。

7).FileNamePointsFracture- 用于保存样本点的文件名。

8).Subscripting_MT4 - 要写入磁盘的数组的索引方向。

9).NameGlobalVariable0 - 保存最后一个采样点的值的全局变量的名称。

10).NameGlobalVariable1 - 保存倒数第二点采样值的全局变量的名称。


1).处理历史的长度由"LengthSample"变量决定。最大尺寸不受限制。同时,在窗口和符号的历史中,必须有不少于"LengthSample+1 "的条数,该指标与此有关。

2).阈值系数,以 "点 "为单位设置采样阈值。

3).DynamicMode(动态模式)是一个标志,决定选择指标的动态或静态操作模式,如果DynamicMode = 1 - 动态模式,如果DynamicMode = 0 - 静态模式。动态模式允许你加快指标的工作,因为只有新的条形图会被处理,而不是重新计算整个历史。同时,计算值将被累积。 只有作为计算结果积累的数据才会被保存在文件中并显示在图表中,如果启用了写到磁盘的功能也是如此。在静态模式下,当一个新的条形图出现时,整个历史将按"LengthSample"的深度重新计算。处理后的历史全长将被保存到文件中,并显示在图表上,当写入磁盘的功能被启用时,也会被显示出来。

4).SaveFileData 标志 ,当值为0时,如果不需要进一步的数据处理,禁止 ,将指标计算的数据写入磁盘。如果需要进一步处理和保存数据到磁盘,SaveFileData 应该设置为1。

5). FileNameData - 数据将被保存在磁盘上的文件名。你可以使用任何名称,但文件扩展名必须保持不变。csv,否则在写文件时就会发生错误。保存数组的最大尺寸由 "LengthSample"决定,但其中的行数可能少于"LengthSample",由最后一个采样点与零条之间的条数决定。

6).SaveFilePointsFracture 标志禁止 ,当值为0时,如果不需要进一步的数据处理,将指标计算的采样点中的价格 ,写入磁盘。如果后续的数据处理和保存到磁盘是必要的,那么SaveFilePointsFracture 的值应该被设置为1。

7).FileNamePointsFracture- 保存采样点价格值的文件名,以及从处理的历史"LengthSample"开始的条形序号, ,对应于每个采样点。 这个文件中的记录数将由采样点的数量决定 ,在历史长度等于"LengthSample"的情况下,以设定的阈值比率获得。在动态模式下--自指标开始以来形成的采样点的数量。与每个采样点相对应的杆状物的序列号也将从指标启动的那一刻开始计算。

8).变量 Subscripting_MT4 - 定义了被写入磁盘的数组的索引方向,如果我们把它设置为1,索引将对应于MetaTrader 4中使用的索引,从领先位置到零,如果我们把它设置为0,标准索引将从零到领先位置。它同时指的是FileNameDataFileNamePointsFracture

9).NameGlobalVariable0 - 存储最后一个采样点的价格值的全局变量的名称。

10).NameGlobalVariable1 - 保存倒数第二个采样点的价格值的全局变量的名称。


当指标工作时,图表的左上角将显示关于处理的历史长度 "LengthSample",阈值 和指标 "AmountRunning "所工作的周期数的信息。


解开存档的所有内容指标趋势。rar ,并将Indicator Trend.ex4 指标安装 文件夹\experts/indicators,重新启动MetaTrader 4终端,之后,指标"Indicator Trend " 出现在自定义指标窗口\Navigator/Indicators/User Indicators,它可以安装在MetaTrader 4窗口的图表中。

 

如果对上述"趋势指标 " 的操作说明没有问题 我将不对其他指标进行说明,而只对其工作原理进行摘录。对于指标Kristi_GrafModelWav"指标趋势",我 已经在交易策略的例子中做了,我将为"指标 Power" 给出。 "指标 通道" .

=====================================================================================================

指示器 电源"指示灯。

开发"指标 Power "指标所依据的理念是: ,动态地追踪目前市场上发生的看涨和看跌趋势的斗争。如果看涨的趋势占主导地位,当新的条形图到来时,指标在零条上的上升与趋势的强度成正比,当看跌的趋势占主导地位时--分别下降。如果趋势略微向一侧或另一侧振荡,则指标值显示为一条直线,从最后一个断裂点开始沿其长度缓慢移动,与现行趋势的强度成正比,当其中一个趋势明显增长时,它就会跳到相应的一侧,形成新的断裂点。" Power "--在其操作的基础上使用了我开发的阈值抽样算法,其步骤与报价的动态变化成正比进行重建。由于这种 ,我们得到的读数只对应于信号的极端值。指标显示的信号水平,由当下主导趋势的强度决定,并与趋势的强度成比例地缓慢变化,直到下一个采样点形成并固定这一水平。

指示器 通道"指示灯。

市场上有两种趋势,上升趋势是看涨的,下降趋势是看跌的。这些趋势有不同的特点,但尽管如此,它们还是相互依赖,相互影响。这个指标是基于将这两个趋势从一般的报价数据流中分离出来的想法,将它们正式化为一个时间序列,反映它们的 发展和相互影响,以及它们斗争的结果。指标"指标 Channel" 创建一个趋势通道,并反映其行为的动态,推断出市场趋势的方向。 上线 显示的是看涨的趋势影响下的特征,下线显示的是看跌的趋势影响下的特征,中线是他们斗争的结果,实际上 ,是对应于指定水平的报价流动采样的趋势谐波之一。不同的采样水平允许分离具有不同振幅-频率特征的谐波。 "指标 通道" - 在其工作的基础上使用了我开发的阈值采样算法,并按照报价动态变化的比例重建了步骤。由于这种抽样 ,我们分别得到了与每个趋势的信号的极端点相对应的样本。信号水平,对于指标的三条线,是由相应的趋势动态决定的,并根据趋势的强度,以及一个比一个普遍的性质而缓慢变化,直到形成下一个离散点并固定这个水平。

该指标的信息成分是: 通道的缩小和扩大,上下射线分歧的角度,拐点和通道中心线反转的时刻。当收到新的条形图时,该指标会动态地反映不断变化的市场趋势,重新构建从最后一个突破点到第一个条形图的射线。

 

我认为你设定的价格太高了,因为它几乎可以与知名的软件产品相媲美,这可能是你的发展很好,但我们只从你的文字中了解到。但是,如果提供购买的指标是以同样的精神编写的,那么基于这些指标构建专家顾问,在我看来需要大量的实验,可能至少需要一台 "Elbrus "电脑:))。如果我曾试图使用基于它的初级专家顾问,我不得不放弃,因为我正在努力优化我并不弱的电脑。

 
lovova:

我认为你设定的价格太高了,因为它几乎可以与知名的软件产品相媲美,这可能是你的发展很好,但我们只从你的文字中了解到。但是,如果提供购买的指标是以同样的精神编写的,那么基于这些指标构建专家顾问,在我看来需要大量的实验,可能至少需要一台 "Elbrus "电脑:))。我试图在此基础上使用简单的专家顾问,但我放弃了,因为我不太弱的电脑几乎不能喘气,要测试整个故事,你知道,和优化。

谢谢你的鹅卵石。我已经开发了一个自动交易系统,并负责其有效运行。我很欣赏我所付出的努力,我认为我设定的价格对内容来说是合适的。从我写的关于指标的内容中应该可以看出,它们不是原始类型的,虽然代码经过优化,不是很大,但其工作的算法相当复杂,我花了几年时间使它们达到最新水平。如果我们将其与良好水平的专家顾问进行比较,例如,价格是相当的,编写一个专家顾问,其中大部分标准块被占用,比创建一个有效的市场分析算法要容易得多。我还没有一个 "名字",但从这篇文章和我参与的几个话题来看,我对这个行业并不陌生,我有一些经验。我不是说这些指标应该一起买,我是说它们是作为不同市场算法的多方位分析的补充工具而开发的,一起使用时最有效。但它们可以单独或成对地工作,如例子所示。至于保证,这是一个单独的问题,我可以保证它们像我写的那样工作,但你是否会使用它们获得利润取决于你将在它们上建立的策略,如果你认为你需要与我讨论策略,那么我可以推荐一些东西,对指标的可能性有更好的了解。如果在掌握其工作方面有任何问题和困难,我当然会提供技术支持。

我现在提出的不能与Krisity指标相比,我开始写它是为了掌握MQL,这是我用一种对我来说很陌生的语言写的第一段代码。我当时还不知道这个语言和函数的可能性,我也没有设定任务要把它写得最好,我只是在学习。当然,现在一切看起来和工作方式都不同了。

 

我收到电子邮件,要求我把指标的演示版本发给我,看看它们如何工作。不幸的是,我没有任何演示版本。为了部分弥补,让大家了解3个指标--"指标趋势"、"指标 Power "和"指标 Channel "是如何动态工作的,我决定以幻灯片的形式展示它们在几天内从演示终端拍摄的工作。为了不使该主题的图片过多,我将只展示反映市场情况的任何变化和指标值 变化的幻灯片。码头和论坛之间的时差是2小时。第一张照片。

 

第二张幻灯片,我稍微增加了 "指标趋势 "指标的阈值,它更好了,我不会再调整其他东西。