群集滤波器设计程序
任何群集滤波器都可通过三个步骤设计:
-
第一步通常是最难的一步,但接收到的流数据的概率模型就是在这一步中形成的。这些模型的数量可以任意大。它们不总是与影响可接近数据的物理过程相关。模型对可接近序列的描述越精确,获得非滞后群集滤波器的概率越高。
2. 在第二步,为每个模型创建一个或多个数字滤波器。在一个群集中加入滤波器的最普遍的情况是这些滤波器属于描述可接近序列的模型。
3.
因此,我们在群集中可以有一个或多个滤波器。从而,对于每个新的样本,我们具有采样值和一个或多个滤波器值。所以,对于每个样本,我们具有一个向量或由多个(至少两个)值组成的人工噪声。现在我们要做的只是选择最合适的值。
简单群集滤波器示例
为便于说明,我们将使用市场报价作为输入序列来实现与上图对应的简单群集滤波器。您可以使用任意时间表的收盘价。
-
模型说明。我们接下来的工作将基于下述假设:
-
可接近序列是非平稳的,即其特性倾向于随时间而变。
-
柱的收盘价不是实际柱的价格。换言之,柱的登记收盘价与该柱上其他价格变动一样,是噪声变动之一。
-
实际价格或可接近序列的实际值位于当前柱的收盘价和上一个柱的收盘价之间。
-
可接近序列趋于保持其方向。也就是说,如果它在上一个柱上上涨,它趋于在当前柱上保持上涨。
2. 选择数字滤波器。为简便起见,我们采用两个滤波器:
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)
-
其中:
|