计算商品价格波动的算法

时间:2017-09-07 13:00:29

标签: algorithm algorithmic-trading

我正在尝试设计一种算法来计算商品价格波动的波动程度。

我希望这种方式起作用的方式是,如果商品的价格不断上涨和下跌,那么它应该比商品价格逐渐上涨然后价格迅速下跌时得分更高。

这是我的意思的一个例子:

商品A:1 - > 2 - > 3 - > 2 - > 1 - > 3 - > 4 - > 2 - > 1

商品B:1 - > 2 - > 3 - > 4 - > 5 - > 6 - > 7 - > 8 - > 2

商品C:1 - > 2 - > 3 - > 4 - > 5 - > 4 - > 3 - > 2→ 1

商品A有一种“波浪”式的模式,因为它的价格会上涨而且会定期下跌。

商品B有一种“悬崖”式的模式,价格逐渐上涨然后急剧下跌。

商品C有一种“山丘”式的模式,价格逐渐上涨然后逐渐下降。

A应该获得最高排名,其次是C,然后是B.商品价格随波动模式越多,排名就越高。

对于可以执行此操作的算法有任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我的方法看起来像这样。

对于我的算法,我正在考虑上面的例子。

A: 1 -> 2 -> 3 -> 2 -> 1 -> 3 -> 4 -> 2 -> 1

B: 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 2

C: 1 -> 2 -> 3 -> 4 -> 5 -> 4 -> 3 -> 2-> 1

现在我将压缩这些列表,通过压缩我的意思是取一个递增或递减序列的起始值和结束值。

因此,在压缩列表之后会看起来像这样。

A: 1 -> 3 -> 1 -> 4 -> 1
B: 1 -> 8 -> 2
C: 1 -> 5 -> 1

现在一旦完成它,我取i和i + 1元素之间的差异,然后取平均值,并根据平均值,我给他们排名。

所以i和i + 1元素之间的区别看起来像这样

      2    2     3      3
A: 1 --> 3 --> 1 --> 4 --> 1  

      7     6
B: 1 --> 8 --> 2

     4      4
C: 1 --> 5 --> 1

现在让我们总结这个差异并取平均值。

A: (2+2+3+3)/4 = 2.5
B: (7+6)/2 = 6.5
C: (4+4)/2 = 4

现在我们可以根据这个平均值

分配排名
A < C < B

希望这有帮助!