分享

(11)创建非滞后数字滤波器(二)

 悦读院 2016-05-23

 群集滤波器设计程序


任何群集滤波器都可通过三个步骤设计:


  1. 第一步通常是最难的一步,但接收到的流数据的概率模型就是在这一步中形成的。这些模型的数量可以任意大。它们不总是与影响可接近数据的物理过程相关。模型对可接近序列的描述越精确,获得非滞后群集滤波器的概率越高。


2. 在第二步,为每个模型创建一个或多个数字滤波器。在一个群集中加入滤波器的最普遍的情况是这些滤波器属于描述可接近序列的模型。


3. 因此,我们在群集中可以有一个或多个滤波器。从而,对于每个新的样本,我们具有采样值和一个或多个滤波器值。所以,对于每个样本,我们具有一个向量或由多个(至少两个)值组成的人工噪声。现在我们要做的只是选择最合适的值。


简单群集滤波器示例

为便于说明,我们将使用市场报价作为输入序列来实现与上图对应的简单群集滤波器。您可以使用任意时间表的收盘价。


  1. 模型说明。我们接下来的工作将基于下述假设:


  • 可接近序列是非平稳的,即其特性倾向于随时间而变。


  • 柱的收盘价不是实际柱的价格。换言之,柱的登记收盘价与该柱上其他价格变动一样,是噪声变动之一。


  • 实际价格或可接近序列的实际值位于当前柱的收盘价和上一个柱的收盘价之间。


  • 可接近序列趋于保持其方向。也就是说,如果它在上一个柱上上涨,它趋于在当前柱上保持上涨。


2. 选择数字滤波器。为简便起见,我们采用两个滤波器:


  • 第一个滤波器将是一个基于最后两个收盘价计算的简单移动平均线。我相信它非常适合为我们的模型指定的第三个假设。


  • 既然我们有了非平稳滤波器,我们也将尝试使用额外的滤波器,希望有助于识别时间序列的特性变化。我选择指数移动平均线,因为这个选项看上去合理并相当适合我。这是因为 EMA 要快于 MA 的事实,因此它不会引起相对于趋势的延迟并具有更好的噪音响应。EMA 同样将基于最后两个收盘价计算。


3. 为群集滤波器选择合适的值。

因此,对于每个新的样本,我们将具有样本值(收盘价)以及 MA 和 EMA 的值。根据为我们的模型指定的第二个假设,将忽略收盘价。此外,我们基于最后一个假设选择 MA 或 EMA 值,即保持趋势方向:

  • 对于上升趋势,即 CF(i-1)>CF(i-2),我们从下面四个变体中选择一个:

    如果 CF(i-1)

    如果 CF(i-1)EMA(i),则 CF(i)=MA(i);

    如果 CF(i-1)>MA(i) 且 CF(i-1)

    如果 CF(i-1)>MA(i) 且 CF(i-1)>EMA(i),则 CF(i)=MAX(MA(i),EMA(i))。


  • 对于下降趋势,即 CF(i-1)

    如果 CF(i-1)>MA(i) 且 CF(i-1)>EMA(i),则 CF(i)=MAX(MA(i),EMA(i));

    如果 CF(i-1)>MA(i) 且 CF(i-1)

    如果 CF(i-1)EMA(i),则 CF(i)=EMA(i);

    如果 CF(i-1)


其中:

  • CF(i) – 群集滤波器在当前柱上的值;

  • CF(i-1) 和 CF(i-2) – 群集滤波器在之前柱上的值;

  • MA(i) – 简单移动平均线在当前柱上的值;

  • EMA(i) – 指数移动平均线在当前柱上的值;

  • MIN – 最小值;

  • MAX – 最大值;


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章