array.median()函数返回错误结果

时间:2020-09-25 16:32:17

标签: pine-script

新的array.median()函数计算出错误的结果。

在下面的示例脚本中,PineScript计算的中位数为12.20
正确的结果应该是10.90

此脚本演示了PineScript中的错误行为

//@version=4
study("Median test")

// Define array
a = array.new_float()

// Fill array with values
array.push(a,0.6)
array.push(a,12.2)
array.push(a,6)
array.push(a,5.6)
array.push(a,4.1)
array.push(a,8.9)
array.push(a,5)
array.push(a,0.5)
array.push(a,0.2)
array.push(a,14.2)
array.push(a,6.2)
array.push(a,10)
array.push(a,2.5)
array.push(a,5)
array.push(a,9.7)
array.push(a,63)
array.push(a,2.3)
array.push(a,13)
array.push(a,23)
array.push(a,10.9)
array.push(a,13.7)
array.push(a,0.6)
array.push(a,26.4)
array.push(a,49)
array.push(a,40.3)
array.push(a,44)
array.push(a,25.9)
array.push(a,3.6)
array.push(a,3)
array.push(a,48)
array.push(a,38.3)
array.push(a,6.7)
array.push(a,82.4)
array.push(a,82)
array.push(a,31.9)
array.push(a,20.8)
array.push(a,1.6)
array.push(a,15.8)
array.push(a,40.2)
array.push(a,0.8)
array.push(a,41.9)
array.push(a,33.1)
array.push(a,30.8)
array.push(a,1.4)
array.push(a,24.5)
array.push(a,8.9)
array.push(a,3.9)
array.push(a,18.5)
array.push(a,8.2)

// Calculate the median
// The median calculated by PineScript is 12.20 and is wrong.
// The correct median is 10.90
// When the median is calculated in Excel or an online resource like these below, the result is 10.90
// http://www.alcula.com/calculators/statistics/median/
// https://www.calculatorsoup.com/calculators/statistics/mean-median-mode.php
med = array.median(a) 

// Plot the median
plot(med, title="Wrong median")

可以通过在Excel或类似在线工具中计算中位数来验证正确的结果 http://www.alcula.com/calculators/statistics/median/
https://www.calculatorsoup.com/calculators/statistics/mean-median-mode.php

如果您想自己计算,这是脚本中的数据集

0.6
12.2
6
5.6
4.1
8.9
5
0.5
0.2
14.2
6.2
10
2.5
5
9.7
63
2.3
13
23
10.9
13.7
0.6
26.4
49
40.3
44
25.9
3.6
3
48
38.3
6.7
82.4
82
31.9
20.8
1.6
15.8
40.2
0.8
41.9
33.1
30.8
1.4
24.5
8.9
3.9
18.5
8.2

0 个答案:

没有答案