指标的动态周期

 
许多指标使用一个 "时期 "来计算它们的数值。这通常是指参与计算下一个数值的条数。以RSI为例。粗略地说,这个指标显示了价格向上 "运行 "的长度相对于价格向下运行的类似长度的比率。当周期很短时,它给出了一个大的湍流,而当周期很长时,它给出了一个接近零的弱脉动。但市场并不总是统一的。准确地说,它始终是不平衡的。在新闻发布后,改变交易时段,在短时间内,为了抓住所有的运动,时间不应该太长。另一方面,在一个长期的 "延长 "趋势(或平缓)期间,这个时期可以延长,以追踪趋势的倾向,而不是其通道内的波动。
有没有人试着建立能使周期长度适应 变化条件的指标?例如,"这里",当另一个指标(或当前指标内的一些计算)在这样的范围内,我们按比例减少这个酒吧的周期长度,在这样的条件下(在另一个酒吧)-反之亦然。
如果是的话--得到了什么结果? 一般来说--这个想法(周期长度的自动调整)有什么常识吗?
 
如果有人知道如何区分多头平局和多头趋势,或者只是如何确定平局是否已经结束,趋势是否已经开始,并相应调整指标或调整他们的TS。
这将是圣杯
 
试过了。非常有趣的变体出来了。例如,MA和随机的混合体。也就是说,MA的角度影响着随机指数的周期。但你能想象有多少种变体吗?结果是不一致的,我没有得出任何明智的结论。
 
ForexTools >>:
да и вообще - есть ли здравое зерно в этой идее (автоподстройки длинны периода)?

谷物就在那里,但需要一个合适的磨坊。

这个想法并不新鲜,请搜索代码库和论坛。也在MT5提供的指标中。

// "自适应数字滤波器 "这个聪明的名字基本上意味着同样的事情。更确切地说,它把这个想法概括了一下。

 
ForexTools >>:
Очень много индикаторов используют для рассчета своих значений так называемый "период". Обычно это количество баров которое учавствует в расчете очередного значения. Возьмем например RSI. Если очень грубо - этот индикатор показывает отношение длинны "пробега" цены вверх по отношению к аналогичной длине пробега цены вниз. При очень маленьких периодах получается жуткая болтанка, при очень длинных - нечто слабопульсирующее около нуля. Однако рынок не всегда равномерен. Точнее всегда не равномерен. После выхода новостей смены торговых сессий да еще на коротких таймах, чтобы поймать все движения период нужно выбирать не очень большой. С другой стороны во время длинного "затяжного" тренда (или флэта) этот период вполне разумно увеличить чтобы отслеживать тенденцию самого тренда, а не колебаний внутри его канала.
Кто нибудь пробовал строить индикаторы которые сами адаптируют длину периода под меняющиеся условия? Вот, например "здесь", когда какойто другой индикатор (или какието вычисления внутри текущего индикатора) в таком то диапазоне мы пропорционально сокращаем длинну перода для этого бара, а при таких то условиях (уже на другом баре) - наоборот увеличиваем.
Если да - то какие получались результаты? да и вообще - есть ли здравое зерно в этой идее (автоподстройки длинны периода)?

我已经通过与参考谐波的关联性进行了尝试。

但事实证明,有时时期急剧跳跃,然后又回到最初的时期,从而破坏了整个画面。

此外,这种方法非常长,如果在实时情况下,它仍然可以在测试器中使用,但在优化中,它是完全失败的。

嗯,总的来说,这是一个很有前途的话题。

 
ForexTools >>:
Очень много индикаторов используют для рассчета своих значений так называемый "период". Обычно это количество баров которое учавствует в расчете очередного значения. Возьмем например RSI. Если очень грубо - этот индикатор показывает отношение длинны "пробега" цены вверх по отношению к аналогичной длине пробега цены вниз. При очень маленьких периодах получается жуткая болтанка, при очень длинных - нечто слабопульсирующее около нуля. Однако рынок не всегда равномерен. Точнее всегда не равномерен. После выхода новостей смены торговых сессий да еще на коротких таймах, чтобы поймать все движения период нужно выбирать не очень большой. С другой стороны во время длинного "затяжного" тренда (или флэта) этот период вполне разумно увеличить чтобы отслеживать тенденцию самого тренда, а не колебаний внутри его канала.
Кто нибудь пробовал строить индикаторы которые сами адаптируют длину периода под меняющиеся условия? Вот, например "здесь", когда какойто другой индикатор (или какието вычисления внутри текущего индикатора) в таком то диапазоне мы пропорционально сокращаем длинну перода для этого бара, а при таких то условиях (уже на другом баре) - наоборот увеличиваем.
Если да - то какие получались результаты? да и вообще - есть ли здравое зерно в этой идее (автоподстройки длинны периода)?

是的,我有。许多次,以不同的方式。结果当然有所改善(对于标准应用),但它仍然是--正如我已经写过几次--在章鱼上的短语对的拟合,因为考虑的是BP,而不是一系列的脉冲。例如,一个非常简单的方法(除了我已经在代码库中提出的方法):如果条形图的振幅小于指定的阈值,那么指标的周期将增加1。当然,条件是可以通过各种方式发明的(当然是逻辑上的)。

例如,这个初级选择的RSI会是这样的:他们选择摆动幅度大于2点的条形图(周期增加,直到达到必要的最小值;周期在顶部受到一个给定参数的限制--这里是从14到33(蓝色--正常RSI,红色--有阈值)。下面的窗口显示了这一时期的变化情况。

不要看第0个窗口--它只是没有抹去指标。这与它没有关系。// )))尽管那里也使用了EMA系数的周期适应。

===
是的,但是--我再说一遍--有总比没有好,但是......))
顺便说一下,如果你不知道,还有所谓的DMI(动态动量指数),RSI的周期也会变化,但取决于RMS。你可以看到威廉姆斯和钱德的描述。
===
而我所描述的简单方法可以应用于任何东西,其中有一个采样长度。如果你需要更复杂的东西,有一个特殊的转向指示器--MsterSlave(见底座中)。

===========
而在这里,周期长度的上限实际上是无限的。即RSI的周期将不断增加,直到它达到14个柱子,有超过2个点的点差。正如你所看到的,作为一项规则,对于一个给定的工具和时间框架,100条就足够了 - 换句话说,周期不超过100条。
附加的文件:
_rsi_tr.mq4  3 kb
 
Svinozavr >>:

но все же это - как уже неодн. писал - примерка фрачной пары на осьминога, т.к....

我们没有一个不确定性(选择哪个时期),而是引入了另一个不确定性(如何选择一个改变时期长度的机制),并认为它将消除第一个不确定性。
但用一种不确定性取代另一种不确定性,似乎并没有得到一个定性的结果。 该死的,几乎是一种哲学,所有科学之母。
谢谢每个人的回应--我会努力消化,思考,并想出一些办法。
 
我写哲学是为了开玩笑,但后来我想:也许有一些适用于价格及其变动的一般规律,例如来自物理学的:海森堡的不确定性原理。也许真的不可能同时测量(在我们的情况下--预测)"来自不同组的两个参数"。 也就是说,我们可以知道确切的时间和价格,但不能知道价格运动的方向,冲动(一根蜡烛不能建立MA)。反之,知道方向,冲动,我们不能知道价格在何时何地(MA从不与当前价格吻合)。
 

期限适应性指标是将系统的一部分和交易理念转移到其代码中。也就是说,时机不是取决于指标,而是取决于交易理念,而指标只是价格的一种转化。
TA试图识别市场中客观发生的过程,并允许在它们仍然存在的时候使用它们。即初始过程,而图表上的事件是检测它处于哪个阶段的机会。这样一来,对于适应性来说,不需要计算周期的数值,而是计算新的参考点。即有某个TA事件(突破、冲动等)--有一个新的时间点,从这个时间点开始参考。事实上,它是一个新的T形挡板。该指标在自适应窗口上计数,其周期等于当前时间时刻与参考t-case的转变。如果确定了一个新的基准点,就从它开始计算周期。但也许这个变体是有用的,当新的TA事件出现时,指标的周期会变成某个默认值,这实际上意味着对这个事件形成的价格的捕获。或者用最近的TA事件之间的时间来计算指标的周期

 

我决定加入科学家之间的对话,并贡献我自己的烹饪秘方。在过去的几年里,我一直在制作几乎所有的指标,这些指标的参数都是自适应变化的。原始的解决方案在市场上是行不通的,我很久以前就得出了这个结论,我一直在酝酿做一个完全自适应的系统,但我还没有时间去做,我在指标中做单独的适应性片段。下面是最新指标的一个片段的例子。一般来说,该指标由几个功能块组成,每个功能块形成其目标信号,总共有24个信号,我只举出一个形成通道的块。我还没有对时间框架和符号的变化进行自动调整,因此每个变体都应该单独调整。

//=====================================================================================================================================
extern int PIB= 33;
extern int PIS= 37;
extern double PMB= 3.98;
extern double PMS= 3.98;
//====================================================================================================================================

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init() {

        PPB=NormalizeDouble(PIB*Point,Digits);
        PPS=NormalizeDouble(PIS*Point,Digits);
        PMB=NormalizeDouble(PMB*Point,Digits);
        PMS=NormalizeDouble(PMS*Point,Digits);
           }
专家启动功能 :

     PR=NormalizeDouble((High[1]-Low[1])+(High[2]-Low[2])+(High[3]-Low[3])+(High[4]-Low[4])+(High[5]-Low[5])+(High[6]-Low[6])+(High[7]-Low[7]),Digits);
     PRB=NormalizeDouble(PMB/PR,Digits); 
     PRS=NormalizeDouble(PMS/PR,Digits); 
      
      BTH[0]=High[0]-PR/17-PRB/2;
  if ((MathAbs(BTH[0]-BTH[1])<=PPB))
      BTH[0]=BTH[1];
      
      BTC[0]=Close[0]-PR/10;
  if ((MathAbs(BTC[0]-BTC[1])<=PPB))
      BTC[0]=BTC[1];
      
      BTC[0]=0.4*BTC[0]+0.6*BTC[1];
      
      BTL[0]=Low[0]-PR/17+PRB/2;
  if ((MathAbs(BTL[0]-BTL[1])<=PPB))
      BTL[0]=BTL[1];
  
      STH[0]=High[0]+PR/17-PRS/2;
  if ((MathAbs(STH[0]-STH[1])<=PPS))
      STH[0]=STH[1];
      
      STC[0]=Close[0]+PR/10;
  if ((MathAbs(STC[0]-STC[1])<=PPS))
      STC[0]=STC[1];
      
      STC[0]=0.4*STC[0]+0.6*STC[1];
      
      STL[0]=Low[0]+PR/17+PRS/2;
  if ((MathAbs(STL[0]-STL[1])<=PPS))
      STL[0]=STL[1];
正如你所看到的,通道的参数是根据过去几个柱子的平均动态指标而自适应调整的。
结果是以下图片。


VTN - 蓝色,BTL - 黄色,BTL - 粉红色,STH - 蓝色,STC - 红色,STL - 紫色。
当然,这是一个简化的方法,为了更准确地适应不断变化的市场阶段,我们需要一个更复杂的解决方案,但尽管如此,这个变体大大改善了指标的特性。
 
我的最新进展 )))