倾向性平面测量法 - 页 3

 
伙计们,关于马具和神奇的MA之间的类比。"魔术师 "声称,当你突破神奇的MA时,价格会有力地稳定地移动。这意味着,在马具上我们可以尝试类似于交叉策略的方法,而在MA上很快就会导致损失。因此,请/提问。这里有任何手动测试者吗?测试一个线束突破策略是很有趣的。我认为这可以避免大量的错误输入。唉,我还不能写一个可接受的密度指标和基于它的EA。但我认为手动检查会很有趣。
 

密度可以从某一时间点上不同破折号的数值之间的差异来计算。方差越小,密度越大。

 
我不认为这很难。你所要做的就是拿两根魔杖--最快的和最慢的。他们设定了流动的边界,无论它是什么。在马具中,它的宽度最小,与袖子之间的距离相等。在其他时候,它增加了,但仍然等于两个袖子之间的距离。
 
有一个问题要问mql专家。我真的想写一个 密度指标。当然,它不会像面具的彩虹那样美丽,但它会更有用。而更重要的是,它可能在机器人领域很有用。为了绘制密度,整个图表平面将被涂上不同的颜色。毕竟,柱子上的密度不是一个数字,而是一个分布,一个阵列。问题是如何做得更好?在Ishimoku指标中,通道的颜色为垂直线,是语言中的对象。在这种情况下,会有许多彩色的通道。这意味着,与一目连相比,图表中的垂直线数量将急剧增加。问题是,它是否会给终端带来麻烦?另一个问题。能否以不同的、更理想的方式进行着色?据我所知,mql中没有低级别的像素图形。
 
Yurixx:
我不认为这很难。你所要做的就是拿两根魔杖--最快的和最慢的。他们设定了流动的边界,无论它是什么。在背带中,它的宽度是最小的,等于袋子之间的距离。在其他时候,它增加,但仍然等于两片之间的距离。

不,这两个袖子并没有给出流动边界。情况往往是相反的。这种方法只适合于一种趋势。在平面上,你必须注意边框的能见度。
 
eugenk,我认为你稍微夸大了这项任务的复杂性。而且你还想把石头装到极限。你不喜欢这个数字,即方差是什么?这个指标只有几行代码。而且,你不必在每一次打勾 时都计算它。
 
eugenk:
给mql专家的一个问题。我真的想写一个密度指标。当然,它不会像骷髅的彩虹那样漂亮,但它会更有用。为了画出密度,我们应该用不同的颜色涂抹整个图表平面。毕竟,柱子上的密度不是一个数字,而是一个分布,一个阵列。问题是如何做得更好?在Ishimoku指标中,通道的颜色为垂直线,是语言中的对象。在这种情况下,会有许多彩色的通道。这意味着图表中垂直线的数量将大大高于lshimoku的情况。问题是,它是否会给终端带来麻烦?另一个问题。能否以不同的、更理想的方式进行着色?据我所知,mql中没有低级别的像素图形。

在上一页,我给出了这样一个策略的链接。 看看吧。这是一个纯粹的策略,没有任何自动化。但这是值得一看的。
 
//+------------------------------------------------------------------+
//|                                                      Density.mq4 |
//+------------------------------------------------------------------+
#property copyright "Mathemat (c) 2007"
#property indicator_separate_window
#property indicator_buffers 1
 
extern int _LoPeriod = 3;
extern int _HiPeriod = 200;
extern int _ma_method = MODE_EMA;
extern int _ma_price = PRICE_CLOSE;
 
double _dens[];   // графический буфер плотности жгута
double _mas[];    // массив машек
 
int init()
{
  SetIndexBuffer( 0, _dens );
  SetIndexStyle ( 0, DRAW_LINE );
  ArrayResize( _mas, _HiPeriod - _LoPeriod + 1 );
  return( 0 );
}
 
// рассчитывает массив машек на заданном баре
void makeMAsArray( int sh )
{
   for( int i = _LoPeriod; i <= _HiPeriod; i ++ )  
      _mas[ i ] = iMA( NULL, 0, i, 0, _ma_method, _ma_price, sh );
   return;
}
 
// возвращает с.к.о. текущего массива машек 
double stderr( int quantity )
{
   double linsum = 0;
   double sqwsum = 0;
   for( int i = 0; i < quantity; i ++ ) 
   {
      linsum += _mas[ i ];
      sqwsum += _mas[ i ] * _mas[ i ];
   }   
   return( MathSqrt( sqwsum / quantity - linsum * linsum / ( quantity * quantity ) ) );   
}
 
 
int start()
{
   int limit = Bars;
   int counted_bars = IndicatorCounted();
   if( counted_bars > 0 )  counted_bars--;
   limit = Bars - counted_bars;
   
   for( int sh = 0; sh < limit; sh ++ )
   {
      makeMAsArray( sh );
      _dens[ sh ] = 1 / stderr( _HiPeriod - _LoPeriod + 1 );
   }
   return( 0 );
}

这个感应器显示了基于每个条状物的泥浆内的差异的马具密度。笔触是指数级。计算结果有点不切实际。哦,它的主要缺点是,它没有被规范化。

P.S. 我承认基于方差计算的方法是徒劳的:在不同抹布的分散度很大的情况下,也可以是一个强大的线束。

 

有两个指标可以用来判断拭子的密度:每个间隔的拭子数量和拭子之间的间隔。我发现第二种可能性很有趣。当然,需要进行一些平均化。换句话说,我们计算函数(由n个样本占据的区间)[(这n个样本的平均值或中位数)在整个样本范围 内(样本应按其价值排序),找到它的最小值并画出条纹,例如,按半高画。我们可以一目了然地采取10个左右的n。尽管事实上,无论是n还是定义条纹边界的方式,都应该边走边看所产生的图片来选择。

 

问题是,我们必须学会如何比在标准元报价包中更优化地计算混杂。我们需要一些计算混搭的递归算法,其中N期的混搭是用N+1期的已知混搭来计算的。原则上,这并不困难,但这样一来,人们就不得不拒绝标准的metacquot算法。

关于袋子的密度:我们显然需要某种聚类算法,因为它们在垂直方向上可能是非常异质的(对于一个给定的酒吧)。简而言之,这项任务在技术上一点也不容易。

P.S. 从3到1002的一千次iMA()调用的效率大约是500000次操作(加法)~1000*1000/2。如果做递归算法(知道N期的规模,简单地乘以N,加上最远的新价格并除以N+1;我们得到N+1期的规模)--效率将线性地取决于N。