窗口聚合函数
与 Grid Aggregate 方法类似,Java SequenceIterator 窗口聚合方法接受一个整数间隔参数,并生成一个结果序列,其中包含每个间隔计算出的聚合值。窗口聚合方法确定其滑动窗口间隔的方式差异在“窗口与网格聚合”页面中有描述。所有窗口聚合方法的结果都以结果序列的形式返回,其中包含每个间隔计算出的聚合值。与网格聚合方法一样,对象的序列会根据间隔参数(类型为 uint8)的值拆分为间隔,该参数确定组中的最大元素数,但实际元素数可能更少。因此,输入序列将被拆分为间隔元素的块,在这些块上执行操作。
SequenceIterator windowAggMax(int interval):返回每个元素窗口的最大值序列
SequenceIterator windowAggMin(int interval):返回每个元素窗口的最小值序列
SequenceIterator windowAggSum(int interval):返回每个元素窗口的总和序列
SequenceIterator windowAggAvg(int interval):返回每个元素窗口的平均值序列
SequenceIterator windowAggVar(int interval):返回每个元素窗口的方差序列SequenceIterator windowAggVarSamp(int interval):返回每个元素窗口的样本方差序列
SequenceIterator windowAggDev(int interval):返回每个元素窗口的标准差序列
SequenceIterator windowAggDevSamp(int interval):返回每个元素窗口的样本标准差序列
SequenceIterator windowAggEma(int period):返回第一个序列元素中的指数移动平均值(使用“窗口聚合 EMA”页面中描述的算法)
SequenceIterator windowAggAtr(int period):返回第一个序列元素中的平均真实波动范围(使用“窗口聚合 ATR”页面中描述的真实波动范围算法)
示例
以下是一个展示窗口聚合方法的示例代码片段:
public static void windowAggregate(Connection con)
{
con.startTransaction(Database.TransactionType.ReadOnly);
Cursor<Quote> cursor = new Cursor<Quote>(con, Quote.class, "symbol");
for (Quote quote : cursor)
{
SequenceIterator winAvg20 = quote.close.iterator().windowAggAvg(20);
SequenceIterator winAvg5 = quote.close.iterator().windowAggAvg(5);
SequenceIterator cross = quote.day.map(winAvg20.sub(winAvg5).cross(1));
...
}
con.commitTransaction();
}