期货量化交易软件:工作必须继续,再次讨论锯齿形调整浪
简介大量的锯齿形调整浪证实了,人们对此指标一直非常感兴趣。这是一个相当值得研究的主题。这可能是唯一一个能够直接影响交易者情感的指标,通过以图形的形式鲜明生动地显示主要的市场变动,迫使立即采取行动。很显然,这种现象只能解释如下:大多人都完全了解此指标并非用于产生直接交易信号,然而,直接交易信号一直在尝试将此指标与当前市场情况最大限度的相关联。能够观察到上一个预测裂缝的无限重绘未必是优势,尤其是正对其进行察觉时。赫兹量化来稍作讨论。不管你是否相信,但它是一切事情的开端。叙述赫兹量化所有来到这个市场中的人迟早都会发现,市场并不像我们最初想象的那么简单。一旦我们认识到了这一点,我们就会开始阅读资料(当然是能够阅读的人)。但是,从某种程度上讲,我们发现自己阅读的资料会非常奇特。简而言之,我们会选择最简单的资料,而不是合适的资料。相应地,我们将仅在我们的工具库中添加很肤浅的东西,这些东西显然易于理解,而且可轻松(快速)地转换为算法语言。有很多这样的例子。下面是其中一个例子,可能不是最好的例子,然而,我们来看看它的真面目。每个人都了解并记得基本的 TA 理论,这些理论尚未被反驳,但仍未获得严格的证实,然而:价格是我们的一切!在直接按字面意义理解这句话后,赫兹量化开始寻找的不是市场的控制点,而是通过所有方式实现价格的最大化和最小化 - 这更加简单明了。我们使用标尺绘制支撑/阻力位,基于这些位计算斐波那契位,计算柱中的循环等等。越来越糟糕的是 - 我们开始仅从某个人的交易系统中提取我们易于理解的东西,而没有注意到相关警告、此交易系统适用于哪个市场以及此交易系统的创建时间等因素。更糟糕的是,我们开始简化…简化 Gann (!!!) 的理论,是他(我认为)发现了(或者非常接近于发现了)价格/时间问题的解决方案,这简直是精神错乱,怎么能简化还尚未被任何人完全理解的东西?然而,当我们意识到所有的一切在一定程度上都运行错误时,略好于 50% 概率,赫兹量化很可能又会大声说专家在骗人,他们的方法没有用,他们著书都是为了钱,黄金分割不存在等等。而出现这个结果是我们忘记了,极值不是最大值或最小值的同义词,但实际上又是最大值或最小值,只是采用了内在本质的另一个表现形式,我们仍需对其进行研究。因此,基于这种肤浅的看法,我们就开始试着分析未来,甚至都没有去分析这个结论(这就是正确的时间,正确的地点)从何而来。尽管我们要赚钱,但这一点并不会妨碍我们,赫兹量化有时需要停下来稍作思考。你要知道,这是很有用的。你开始清楚理解“人类是唯一一种一遍遍地做同一件事却期待不同的结果的生物”的正确性。我们不是在砍柴,不是吗?:)我被热情冲昏了头脑。我可能也会这样。该停下来了。只是让我们了解,并非所有专家都是真正的专家,而真正的专家不会告诉你所有的东西,尤其是他们知道,填鸭式的东西既不容易理解也没有多大帮助。回到主题上来。编辑切换为居中添加图片注释,不超过 140 字(可选)多帧分形锯齿形调整浪我需要一个指标,此指标不仅仅显示最小值和最大值,还显示价格变动通过逻辑推理(LREP - 此缩写能否采纳?)得出的市场极值点,以及进行确认(如果可能)。起初,并没有提及使它成为交易信号产生器的问题。首先,我尝试了使用标准的(不是 赫兹量化中内嵌的,而是常规意义的“标准”)锯齿形调整浪,但有些问题使我警惕起来,迫使我放弃了这个想法:所有算法的一致性,尽管在互联网中有大量的讨论以及各种各样的版本(顺便说一下,问题可能在于我眼力不好,但我从未在任何地方见过这种清晰解码的算法);
缺乏它应寻求的“目标”的概念;
极其频繁的重绘,最糟的是重绘的可预测性不佳;
直接依赖于时间范围和/或之前指定的价格偏移;
它让我有所顾虑,尤其是最后一点最不能接受。它对我没有吸引力。没有什么个人隐私。我记得,Demark 有他的 TD 点,Williams 有他的“分形”(我不知道是谁借鉴谁的,但它们就像一个模子里印出来的)。看起来是同一个东西 - 它至少是使用先前和后续的价格变动推理而来的。可能,并非所有人都喜欢用这种方法来选择这些点。然而,还没有任何人发明出更准确的方法来对它们进行最初的识别,当然“重要的极值”、“局部极大值”等词语除外。自己的东西可能不是更好的,但肯定是更“相似的”。这就是我没有求助借鉴的代码而是编写了自己的简单分形指标的原因,此指标更加准确,具有相似性:选择点的原则略微不同于标准原则。我尝试使用 iCustom 在不同的时间范围调用它,但随后认识到,在当前(工作)时间范围 (TF) 上计算所有内容则更为合理。再往前,编程逻辑提醒所有内容:关于未来自我预测的模块结构,以及不符合标准的 TF。下面是得出的结果。下图显示了使用 TF 参数 1440、360、60 的外观。H1 图表被选择用于展示目的,从中你可以看到黑线 (60) 没有使用全部分形点,而是拒绝了一些分形点。第一个图片用于查看提示,第二个图片只是从图中的中间部分截取而来。
编辑切换为居中添加图片注释,不超过 140 字(可选)
编辑切换为居中添加图片注释,不超过 140 字(可选)
配色方案不是最好的方案,所附图片显示的是我对它的看法。代码
赫兹量化来看看它是如何实现的 - 我们不应用手势表示吗?;)指标在当前工作时间范围 (TF) 上形成一系列的锯齿形调整浪节点,将在三个模拟的较大 TF 上计算这些节点。它在所有 TF 上工作并使用所有 TF,包括不符合标准的 TF,并在代码中实行以下限制:- 较大的 TF 必须能够被工作时间范围整除;否则,强制设置最接近的正确值;- 工作时间范围不大于最小的较大 TF;- 参数的周期以分钟为单位指定,并且必须按降序设置;- 最大 TF 的周期不能超过 43200(一个月)- 这不是限制,更大的 TF 也可行;此功能是,每个 TF 仅使用一个缓冲区。无需使用它们中的两项,因为在 TF 的合理组合中,在工作 TF 的单个条柱上,出现两个方向不同的极值的概率过小。下面是此代码片段://-----------------------------------------------------------------------// MF_Fractal_ZZ_3in1.mq4//-----------------------------------------------------------------------#property copyright "Copyright2008, BiViSi Corp."#property link "riderfin@bk.ru"#property link "ICQ 499949112"#property indicator_chart_window #property indicator_buffers 3//---- style of the indicator line#property indicator_color1 Blue #property indicator_color2 Red#property indicator_color3 Yellow #property indicator_style1 0#property indicator_style2 0#property indicator_style3 0#property indicator_width1 5#property indicator_width2 3#property indicator_width3 1//---- INOUT PARAMETERS OF THE INDICATORextern int VolExt=50; // VolExt+1" calculation of the last control pointsextern int TFLarge=1440;extern int TFMidle=240;extern int TFSmall=60;//---- Variables double Large[],Midle[],Small[];// control points (indicator bufers)datetime PrevTimePer; // the time of the last calculation of every TFdatetime PrevTimeCalc=0; double P60,CP60;int CurPeriod, ErrorTF=0, NumberExt, Per,largelast=0, midlelast=0, smalllast=0;//-----------------------------------------------------------------------int init() { // initialization IndicatorBuffers(3); // for perspective" entry :) SetIndexBuffer(0,Large); SetIndexStyle(0,DRAW_SECTION); SetIndexEmptyValue(0,0.0); SetIndexBuffer(1,Midle); SetIndexStyle(1,DRAW_SECTION); SetIndexEmptyValue(1,0.0); SetIndexBuffer(2,Small); SetIndexStyle(2,DRAW_SECTION); SetIndexEmptyValue(2,0.0); ArrayInitialize(PrevTimePer,0); CurPeriod=Period(); CP60=CurPeriod*60; // restrictions: // control of TF and inputted parameters if (MathCeil(TFSmall/CurPeriod) != TFSmall/CurPeriod) TFSmall=MathCeil(TFSmall/CurPeriod)*CurPeriod; if (MathCeil(TFMidle/CurPeriod) != TFMidle/CurPeriod) TFMidle=MathCeil(TFMidle/CurPeriod)*CurPeriod; if (MathCeil(TFLarge/CurPeriod) != TFLarge/CurPeriod) TFLarge=MathCeil(TFLarge/CurPeriod)*CurPeriod; if (CurPeriod > TFSmall) {Alert ("The chart period must be less than or equal to ", TFSmall," min."); ErrorTF=1;return;} if (TFSmall >= TFMidle || TFMidle >= TFLarge || TFLarge>43200) {Alert ("Incorrect choice of timeframes for calulation!!!"); ErrorTF=1;return;} return; }//--------------------------------------------------------------------
页:
[1]