diff --git a/strategy/volatility/testdata/super_trend_strategy.csv b/strategy/volatility/testdata/super_trend_strategy.csv
index 3e4ed9a1..3fe773a9 100644
--- a/strategy/volatility/testdata/super_trend_strategy.csv
+++ b/strategy/volatility/testdata/super_trend_strategy.csv
@@ -21,18 +21,6 @@ Action
1
1
1
--1
-1
--1
-1
--1
--1
-1
-1
-1
-1
--1
--1
1
1
1
@@ -45,19 +33,35 @@ Action
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
1
1
1
@@ -78,16 +82,11 @@ Action
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
+-1
-1
1
1
@@ -98,9 +97,10 @@ Action
1
1
1
--1
1
--1
+1
+1
+1
1
1
1
@@ -112,12 +112,13 @@ Action
-1
-1
-1
-1
-1
-1
-1
-1
-1
+-1
+-1
+-1
+-1
+-1
-1
-1
-1
@@ -133,16 +134,12 @@ Action
1
1
1
--1
1
1
1
1
1
1
--1
--1
--1
1
1
1
@@ -152,8 +149,6 @@ Action
1
1
1
--1
--1
1
1
1
@@ -166,9 +161,7 @@ Action
1
1
1
--1
1
--1
1
1
1
@@ -178,12 +171,20 @@ Action
1
1
1
--1
1
--1
1
--1
1
+1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
+-1
-1
1
1
@@ -228,6 +229,11 @@ Action
-1
-1
-1
+-1
+-1
+1
+1
+1
1
1
1
@@ -239,14 +245,8 @@ Action
1
1
1
--1
1
--1
1
--1
1
--1
1
--1
1
--1
diff --git a/trend/README.md b/trend/README.md
index 74d02987..0644d3e0 100644
--- a/trend/README.md
+++ b/trend/README.md
@@ -2051,16 +2051,16 @@ func NewWmaWith[T helper.Number](period int) *Wma[T]
NewWmaWith function initializes a new WMA instance with the given parameters.
-### func \(\*Wma\[T\]\) [Compute]()
+### func \(\*Wma\[T\]\) [Compute]()
```go
func (w *Wma[T]) Compute(values <-chan T) <-chan T
```
-Compute function takes a channel of numbers and computes the WMA and the signal line.
+Compute computes the WMA over the input stream.
-### func \(\*Wma\[T\]\) [IdlePeriod]()
+### func \(\*Wma\[T\]\) [IdlePeriod]()
```go
func (w *Wma[T]) IdlePeriod() int
@@ -2069,7 +2069,7 @@ func (w *Wma[T]) IdlePeriod() int
IdlePeriod is the initial period that WMA won't yield any results.
-### func \(\*Wma\[T\]\) [String]()
+### func \(\*Wma\[T\]\) [String]()
```go
func (w *Wma[T]) String() string
diff --git a/trend/testdata/hma.csv b/trend/testdata/hma.csv
index d20c8d0f..dc0b2bd3 100644
--- a/trend/testdata/hma.csv
+++ b/trend/testdata/hma.csv
@@ -2,251 +2,251 @@ Close,Hma
318.600006,0
315.839996,0
316.149994,0
-310.570007,117.07
-307.779999,115.31
-305.820007,114.46
-305.98999,114.45
-306.390015,114.78
-311.450012,116.2
-312.329987,117.45
-309.290009,116.65
-301.910004,113.92
-300,112
-300.029999,112.04
-302,112.93
-307.820007,114.87
-302.690002,114.72
-306.48999,114.27
-305.549988,114.8
-303.429993,114.13
-309.059998,114.98
-308.899994,116.24
-309.910004,116.31
-314.549988,117.45
-312.899994,117.97
-318.690002,118.84
-315.529999,119.13
-316.350006,118.51
-320.369995,119.57
-318.929993,120.15
-317.640015,119.32
-314.859985,118.25
-308.299988,116.15
-305.230011,114.18
-309.869995,115.09
-310.420013,116.6
-311.299988,116.87
-311.899994,116.98
-310.950012,116.81
-309.170013,116.11
-307.329987,115.29
-311.519989,116.07
-310.570007,116.85
-311.859985,116.88
-308.51001,116.18
-308.429993,115.45
-312.970001,116.65
-308.480011,116.62
-307.209991,115.18
-309.890015,115.58
-313.73999,117.34
-310.790009,117.35
-309.630005,116.17
-308.179993,115.53
-308.23999,115.41
-302.720001,114.15
-303.160004,113.17
-303.070007,113.47
-304.019989,113.9
-304.660004,114.24
-305.179993,114.47
-304.619995,114.37
-307.75,114.99
-312.450012,116.82
-316.970001,118.82
-311.119995,117.97
-311.369995,116.43
-304.820007,114.9
-303.630005,113.47
-302.880005,113.3
-305.329987,114.08
-297.880005,112.81
-302.01001,112.22
-293.51001,111.16
-301.059998,111.42
-303.850006,113.87
-299.730011,113.46
-298.369995,111.83
-298.920013,111.74
-302.140015,112.89
-302.320007,113.64
-305.299988,114.26
-305.079987,114.69
-308.769989,115.43
-310.309998,116.47
-309.070007,116.34
-310.390015,116.19
-312.51001,116.98
-312.619995,117.45
-313.700012,117.6
-314.549988,117.94
-318.049988,118.95
-319.73999,120.02
-323.790009,121.2
-324.630005,122.04
-323.089996,121.59
-323.820007,121.25
-324.329987,121.56
-326.049988,122.13
-324.339996,122.01
-320.529999,120.6
-326.230011,121.24
-328.549988,123.23
-330.170013,124.04
-325.859985,122.97
-323.220001,121.25
-320,120
-323.880005,120.59
-326.140015,122.21
-324.869995,122.34
-322.98999,121.34
-322.640015,120.82
-322.48999,120.85
-323.529999,121.17
-323.75,121.46
-327.390015,122.38
-329.76001,123.68
-330.390015,124.17
-329.130005,123.73
-323.109985,121.84
-320.200012,119.88
-319.019989,119.29
-320.600006,119.81
-322.190002,120.71
-321.079987,120.74
-323.119995,120.89
-329.480011,122.88
-328.579987,123.94
-333.410004,124.61
-335.420013,125.9
-335.950012,126.28
-335.290009,125.94
-333.600006,125.28
-336.390015,125.63
-335.899994,126.19
-339.820007,127.02
-338.309998,127.36
-338.670013,126.99
-338.609985,126.95
-336.959991,126.58
-335.25,125.79
-334.119995,125.22
-335.339996,125.43
-334.149994,125.51
-336.910004,125.95
-341,127.54
-342,128.58
-341.559998,128.39
-341.459991,128.06
-340.899994,127.88
-341.130005,127.84
-343.369995,128.48
-345.350006,129.46
-343.540009,129.31
-341.089996,128.15
-344.25,128.42
-345.339996,129.53
-342.429993,129
-346.609985,129.26
-345.76001,129.99
-349.630005,130.73
-347.579987,130.89
-349.799988,130.89
-349.309998,131.15
-349.809998,131.17
-351.959991,131.74
-352.26001,132.26
-351.190002,131.94
-353.809998,132.27
-349.98999,131.9
-362.579987,134.18
-363.730011,137.15
-358.019989,135.59
-356.980011,133.57
-358.350006,133.89
-358.480011,134.48
-354.5,133.5
-354.109985,132.51
-353.190002,132.36
-352.559998,132.2
-352.089996,132
-350.570007,131.59
-354.26001,132.24
-354.299988,133.1
-355.929993,133.43
-355.549988,133.52
-358.290009,134.05
-361.059998,135.26
-360.200012,135.53
-362.459991,135.68
-360.470001,135.58
-361.670013,135.4
-361.799988,135.68
-363.149994,136.07
-365.519989,136.89
-367.779999,137.89
-367.820007,138.21
-369.5,138.45
-367.859985,138.29
-370.429993,138.52
-370.480011,139.07
-366.820007,138.13
-363.279999,136.37
-360.160004,135
-361.709991,135.04
-359.420013,135.07
-357.779999,134.25
-357.059998,133.76
-350.299988,132.08
-348.079987,130.21
-343.040009,128.8
-343.690002,128.29
-345.059998,129.07
-346.339996,129.86
-345.450012,129.82
-348.559998,130.3
-348.429993,130.9
-345.660004,130.09
-345.089996,129.24
-346.230011,129.53
-345.390015,129.7
-340.890015,128.37
-338.660004,126.87
-335.859985,125.92
-336.839996,125.87
-338.630005,126.73
-336.899994,126.74
-336.160004,126.08
-331.709991,124.81
-337.410004,125.41
-341.329987,127.8
-343.75,129.17
-349.019989,130.59
-351.809998,132.12
-346.630005,131.09
-346.170013,129.56
-346.299988,129.59
-348.179993,130.32
-350.559998,131.32
-350.01001,131.6
-354.25,132.37
-356.790009,133.81
-359.859985,134.95
-358.929993,135.08
-361.329987,135.25
-361,135.58
-361.799988,135.65
-362.679993,135.95
-361.339996,135.78
-360.049988,135.1
-358.690002,134.52
+310.570007,314.25
+307.779999,311.14
+305.820007,306.06
+305.98999,305.25
+306.390015,305.37
+311.450012,307.22
+312.329987,310.89
+309.290009,313.36
+301.910004,308.86
+300,301.81
+300.029999,297.86
+302,299.72
+307.820007,302.65
+302.690002,306.65
+306.48999,306.12
+305.549988,303.99
+303.429993,306.62
+309.059998,304.41
+308.899994,307.39
+309.910004,310.97
+314.549988,310.46
+312.899994,313.84
+318.690002,315.69
+315.529999,316.65
+316.350006,318.12
+320.369995,315.83
+318.929993,319.73
+317.640015,320.29
+314.859985,316.91
+308.299988,313.8
+305.230011,307.95
+309.869995,304.33
+310.420013,308.17
+311.299988,312.02
+311.899994,311.44
+310.950012,311.93
+309.170013,311.01
+307.329987,308.84
+311.519989,307.74
+310.570007,310.05
+311.859985,312.34
+308.51001,310.77
+308.429993,309.48
+312.970001,308.08
+308.480011,311.44
+307.209991,310.53
+309.890015,306.37
+313.73999,309.66
+310.790009,313.5
+309.630005,312.37
+308.179993,308.6
+308.23999,308.04
+302.720001,306.83
+303.160004,303.73
+303.070007,301.23
+304.019989,303.39
+304.660004,303.94
+305.179993,304.96
+304.619995,305.21
+307.75,305.41
+312.450012,307.83
+316.970001,313.46
+311.119995,316.81
+311.369995,313.64
+304.820007,308.29
+303.630005,305.8
+302.880005,301.52
+305.329987,303.02
+297.880005,303.43
+302.01001,300.63
+293.51001,297.42
+301.059998,297.56
+303.850006,297.43
+299.730011,305.22
+298.369995,301.12
+298.920013,297.32
+302.140015,298.91
+302.320007,301.82
+305.299988,303.86
+305.079987,304.83
+308.769989,306.72
+310.309998,308.34
+309.070007,311.08
+310.390015,310.01
+312.51001,310.11
+312.619995,312.62
+313.700012,313.49
+314.549988,313.7
+318.049988,315.35
+319.73999,318.03
+323.790009,321.3
+324.630005,323.82
+323.089996,325.58
+323.820007,323.75
+324.329987,323.27
+326.049988,324.77
+324.339996,325.65
+320.529999,324.56
+326.230011,321.55
+328.549988,324.4
+330.170013,330.33
+325.859985,329.95
+323.220001,326.68
+320,321.69
+323.880005,320.3
+326.140015,322.54
+324.869995,326.85
+322.98999,325.52
+322.640015,322.82
+322.48999,322.05
+323.529999,322.57
+323.75,323.34
+327.390015,324.67
+329.76001,327.25
+330.390015,330.68
+329.130005,330.87
+323.109985,328.55
+320.200012,323.21
+319.019989,318.48
+320.600006,318.51
+322.190002,320.21
+321.079987,322.27
+323.119995,322.13
+329.480011,323.47
+328.579987,328.95
+333.410004,331.65
+335.420013,332.64
+335.950012,336.78
+335.290009,336.42
+333.600006,335.3
+336.390015,334.13
+335.899994,335.28
+339.820007,337.57
+338.309998,338.75
+338.670013,339.93
+338.609985,338.1
+336.959991,338.46
+335.25,336.93
+334.119995,334.8
+335.339996,333.94
+334.149994,334.56
+336.910004,335.21
+341,336.74
+342,341.41
+341.559998,343.12
+341.459991,341.95
+340.899994,341.24
+341.130005,341
+343.369995,341.28
+345.350006,343.4
+343.540009,345.47
+341.089996,344.09
+344.25,341.42
+345.339996,343.09
+342.429993,345.73
+346.609985,343.97
+345.76001,344.8
+349.630005,347.94
+347.579987,348.36
+349.799988,349.58
+349.309998,348.66
+349.809998,350.21
+351.959991,349.92
+352.26001,351.82
+351.190002,352.75
+353.809998,351.91
+349.98999,352.38
+362.579987,353.6
+363.730011,359.4
+358.019989,366.78
+356.980011,359.18
+358.350006,355.48
+358.480011,357.8
+354.5,358.25
+354.109985,355.14
+353.190002,352.69
+352.559998,353.11
+352.089996,352.28
+350.570007,351.7
+354.26001,351.28
+354.299988,353.15
+355.929993,355.79
+355.549988,355.61
+358.290009,356.61
+361.059998,358.17
+360.200012,361.37
+362.459991,361.64
+360.470001,361.47
+361.670013,361.75
+361.799988,360.83
+363.149994,362.4
+365.519989,363.36
+367.779999,365.95
+367.820007,368.2
+369.5,368.85
+367.859985,368.96
+370.429993,369.12
+370.480011,369.46
+366.820007,370.72
+363.279999,366.86
+360.160004,362.13
+361.709991,359.76
+359.420013,360.03
+357.779999,360.05
+357.059998,357.17
+350.299988,355.51
+348.079987,350.82
+343.040009,345.36
+343.690002,343.25
+345.059998,342.13
+346.339996,345.26
+345.450012,346.43
+348.559998,346.54
+348.429993,347.72
+345.660004,349.03
+345.089996,345.98
+346.230011,344.45
+345.390015,345.71
+340.890015,345.16
+338.660004,340.99
+335.859985,337.07
+336.839996,335.75
+338.630005,336.04
+336.899994,338.37
+336.160004,337.66
+331.709991,334.96
+337.410004,333.15
+341.329987,335.63
+343.75,342.98
+349.019989,345.53
+351.809998,349.41
+346.630005,352.24
+346.170013,348.35
+346.299988,344.54
+348.179993,346.44
+350.559998,348.31
+350.01001,350.7
+354.25,351.6
+356.790009,353.78
+359.859985,358.29
+358.929993,360.04
+361.329987,360.51
+361,360.56
+361.799988,361.99
+362.679993,361.7
+361.339996,362.58
+360.049988,361.64
+358.690002,359.59
diff --git a/trend/testdata/wma.csv b/trend/testdata/wma.csv
index 2583fb01..63b4d5b6 100644
--- a/trend/testdata/wma.csv
+++ b/trend/testdata/wma.csv
@@ -1,252 +1,252 @@
-Close,Wma
-318.600006,0
-315.839996,0
-316.149994,316.45
-310.570007,313.31
-307.779999,310.11
-305.820007,307.27
-305.98999,306.23
-306.390015,306.16
-311.450012,308.85
-312.329987,311.05
-309.290009,310.66
-301.910004,306.11
-300,302.19
-300.029999,300.33
-302,301.01
-307.820007,304.58
-302.690002,304.29
-306.48999,305.44
-305.549988,305.39
-303.429993,304.65
-309.059998,306.6
-308.899994,308.04
-309.910004,309.43
-314.549988,312.06
-312.899994,312.95
-318.690002,316.07
-315.529999,316.14
-316.350006,316.47
-320.369995,318.22
-318.929993,318.98
-317.640015,318.53
-314.859985,316.46
-308.299988,312.04
-305.230011,307.86
-309.869995,308.06
-310.420013,309.37
-311.299988,310.77
-311.899994,311.45
-310.950012,311.33
-309.170013,310.22
-307.329987,308.55
-311.519989,309.73
-310.570007,310.35
-311.859985,311.37
-308.51001,309.97
-308.429993,309.03
-312.970001,310.71
-308.480011,309.97
-307.209991,308.59
-309.890015,308.76
-313.73999,311.37
-310.790009,311.62
-309.630005,310.7
-308.179993,309.1
-308.23999,308.45
-302.720001,305.47
-303.160004,303.86
-303.070007,303.04
-304.019989,303.56
-304.660004,304.18
-305.179993,304.81
-304.619995,304.81
-307.75,306.28
-312.450012,309.58
-316.970001,313.93
-311.119995,313.29
-311.369995,312.22
-304.820007,308.05
-303.630005,305.32
-302.880005,303.45
-305.329987,304.23
-297.880005,301.2
-302.01001,301.19
-293.51001,297.07
-301.059998,298.7
-303.850006,301.2
-299.730011,301.33
-298.369995,299.74
-298.920013,298.87
-302.140015,300.44
-302.320007,301.69
-305.299988,303.78
-305.079987,304.69
-308.769989,306.96
-310.309998,308.92
-309.070007,309.43
-310.390015,309.94
-312.51001,311.23
-312.619995,312.21
-313.700012,313.14
-314.549988,313.94
-318.049988,316.16
-319.73999,318.31
-323.790009,321.48
-324.630005,323.54
-323.089996,323.72
-323.820007,323.71
-324.329987,323.95
-326.049988,325.1
-324.339996,324.91
-320.529999,322.72
-326.230011,324.02
-328.549988,326.44
-330.170013,328.97
-325.859985,327.74
-323.220001,325.26
-320,322.05
-323.880005,322.48
-326.140015,324.36
-324.869995,325.13
-322.98999,324.14
-322.640015,323.13
-322.48999,322.62
-323.529999,323.03
-323.75,323.47
-327.390015,325.53
-329.76001,327.97
-330.390015,329.68
-329.130005,329.66
-323.109985,326.33
-320.200012,322.66
-319.019989,320.09
-320.600006,320.01
-322.190002,321.13
-321.079987,321.37
-323.119995,322.28
-329.480011,325.96
-328.579987,327.97
-333.410004,331.14
-335.420013,333.61
-335.950012,335.35
-335.290009,335.53
-333.600006,334.56
-336.390015,335.28
-335.899994,335.68
-339.820007,337.94
-338.309998,338.41
-338.670013,338.74
-338.609985,338.58
-336.959991,337.79
-335.25,336.38
-334.119995,334.97
-335.339996,334.92
-334.149994,334.54
-336.910004,335.73
-341,338.5
-342,340.82
-341.559998,341.61
-341.459991,341.58
-340.899994,341.2
-341.130005,341.11
-343.369995,342.21
-345.350006,343.99
-343.540009,344.12
-341.089996,342.62
-344.25,343.08
-345.339996,344.27
-342.429993,343.7
-346.609985,345
-345.76001,345.49
-349.630005,347.84
-347.579987,347.96
-349.799988,349.03
-349.309998,349.18
-349.809998,349.64
-351.959991,350.8
-352.26001,351.75
-351.190002,351.68
-353.809998,352.68
-349.98999,351.46
-362.579987,356.92
-363.730011,361.06
-358.019989,360.68
-356.980011,358.45
-358.350006,357.84
-358.480011,358.19
-354.5,356.47
-354.109985,354.97
-353.190002,353.71
-352.559998,353.03
-352.089996,352.43
-350.570007,351.41
-354.26001,352.67
-354.299988,353.66
-355.929993,355.11
-355.549988,355.47
-358.290009,356.98
-361.059998,359.22
-360.200012,360.17
-362.459991,361.47
-360.470001,361.09
-361.670013,361.4
-361.799988,361.53
-363.149994,362.45
-365.519989,364.11
-367.779999,366.25
-367.820007,367.42
-369.5,368.65
-367.859985,368.4
-370.429993,369.42
-370.480011,370.03
-366.820007,368.64
-363.279999,365.66
-360.160004,362.31
-361.709991,361.45
-359.420013,360.31
-357.779999,358.98
-357.059998,357.69
-350.299988,353.8
-348.079987,350.32
-343.040009,345.93
-343.690002,344.21
-345.059998,344.27
-346.339996,345.47
-345.450012,345.68
-348.559998,347.15
-348.429993,347.98
-345.660004,347.07
-345.089996,345.84
-346.230011,345.76
-345.390015,345.62
-340.890015,343.28
-338.660004,340.53
-335.859985,337.63
-336.839996,336.82
-338.630005,337.57
-336.899994,337.47
-336.160004,336.82
-331.709991,334.06
-337.410004,335.3
-341.329987,338.42
-343.75,341.89
-349.019989,345.98
-351.809998,349.54
-346.630005,348.76
-346.170013,347.26
-346.299988,346.31
-348.179993,347.22
-350.559998,349.06
-350.01001,349.89
-354.25,352.22
-356.790009,354.81
-359.859985,357.9
-358.929993,358.88
-361.329987,360.28
-361,360.76
-361.799988,361.45
-362.679993,362.11
-361.339996,361.86
-360.049988,360.92
-358.690002,359.58
+Close,Wma3,Wma5
+318.600006,0,0
+315.839996,0,0
+316.149994,317.272,0
+310.570007,315.065,0
+307.779999,312.895,315.582
+305.820007,308.848,313.126
+305.98999,306.828,310.933
+306.390015,305.972,307.987
+311.450012,307.033,306.959
+312.329987,309.067,307.164
+309.290009,311.383,308.254
+301.910004,309.580,309.015
+300,305.282,309.217
+300.029999,300.960,306.971
+302,300.343,303.743
+307.820007,301.985,301.431
+302.690002,304.055,301.630
+306.48999,305.888,302.899
+305.549988,304.433,304.525
+303.429993,305.667,305.591
+309.059998,305.428,304.799
+308.899994,306.218,306.131
+309.910004,309.148,306.424
+314.549988,310.178,307.631
+312.899994,311.955,310.175
+318.690002,314.690,311.485
+315.529999,315.268,313.291
+316.350006,317.247,315.189
+320.369995,316.610,315.928
+318.929993,318.120,317.619
+317.640015,319.435,317.311
+314.859985,317.822,318.011
+308.299988,315.157,317.901
+305.230011,311.068,315.441
+309.869995,307.538,312.858
+310.420013,307.642,310.223
+311.299988,310.292,308.278
+311.899994,310.960,308.759
+310.950012,311.442,310.645
+309.170013,311.128,310.938
+307.329987,309.753,310.841
+311.519989,308.948,310.466
+310.570007,309.267,309.802
+311.859985,311.260,309.515
+308.51001,310.657,309.778
+308.429993,310.172,310.727
+312.970001,309.227,310.377
+308.480011,309.952,310.203
+307.209991,310.513,309.290
+309.890015,308.292,309.585
+313.73999,309.192,310.261
+310.790009,311.323,309.279
+309.630005,312.072,309.869
+308.179993,309.968,310.948
+308.23999,308.915,311.023
+302.720001,307.290,309.081
+303.160004,305.553,307.613
+303.070007,302.925,306.094
+304.019989,303.273,304.781
+304.660004,303.652,303.210
+305.179993,304.427,303.643
+304.619995,304.827,304.026
+307.75,305.422,304.751
+312.450012,306.968,305.722
+316.970001,310.853,307.300
+311.119995,313.735,309.101
+311.369995,314.087,311.538
+304.820007,310.153,312.737
+303.630005,307.897,311.781
+302.880005,304.100,308.379
+305.329987,303.663,306.541
+297.880005,302.863,303.720
+302.01001,302.293,302.895
+293.51001,298.528,301.793
+301.059998,299.018,300.819
+303.850006,297.750,298.929
+299.730011,301.768,299.647
+298.369995,301.563,298.745
+298.920013,299.142,301.037
+302.140015,299.182,300.884
+302.320007,300.560,299.699
+305.299988,302.727,300.259
+305.079987,303.773,301.720
+308.769989,305.805,303.654
+310.309998,307.182,305.059
+309.070007,309.333,306.855
+310.390015,309.910,307.996
+312.51001,310.083,309.706
+312.619995,311.468,310.443
+313.700012,312.745,310.892
+314.549988,313.302,312.120
+318.049988,314.708,313.419
+319.73999,316.582,314.493
+323.790009,319.570,316.275
+324.630005,321.905,318.425
+323.089996,323.953,320.862
+323.820007,323.982,322.517
+324.329987,323.540,323.914
+326.049988,324.362,324.112
+324.339996,324.905,324.011
+320.529999,324.560,324.252
+326.230011,323.385,324.411
+328.549988,323.767,324.681
+330.170013,327.660,324.652
+325.859985,328.642,325.295
+323.220001,327.575,327.387
+320,324.003,327.163
+323.880005,322.257,325.855
+326.140015,322.317,323.739
+324.869995,324.798,322.993
+322.98999,325.192,323.111
+322.640015,323.872,324.479
+322.48999,322.790,324.461
+323.529999,322.738,323.516
+323.75,323.047,322.919
+327.390015,324.247,323.243
+329.76001,325.965,324.157
+330.390015,328.680,325.649
+329.130005,329.865,327.167
+323.109985,328.757,328.569
+320.200012,325.635,328.278
+319.019989,321.458,326.481
+320.600006,319.873,323.822
+322.190002,320.075,321.120
+321.079987,321.210,320.289
+323.119995,321.975,320.623
+329.480011,323.160,322.048
+328.579987,326.150,323.478
+333.410004,329.835,325.126
+335.420013,331.330,328.100
+335.950012,334.503,331.249
+335.290009,335.575,332.666
+333.600006,335.338,334.717
+336.390015,334.910,335.357
+335.899994,334.913,335.359
+339.820007,336.798,335.443
+338.309998,337.608,335.947
+338.670013,339.125,337.353
+338.609985,338.480,337.977
+336.959991,338.365,338.835
+335.25,337.500,338.082
+334.119995,335.917,337.553
+335.339996,334.888,336.681
+334.149994,334.532,335.533
+336.910004,335.205,334.931
+341,336.212,335.282
+342,339.122,336.535
+341.559998,341.427,337.797
+341.459991,341.763,339.942
+340.899994,341.417,341.433
+341.130005,341.218,341.570
+343.369995,341.388,341.465
+345.350006,342.580,341.759
+343.540009,344.058,342.225
+341.089996,344.037,342.890
+344.25,342.842,343.687
+345.339996,342.852,343.868
+342.429993,344.310,343.195
+346.609985,344.582,343.329
+345.76001,344.378,344.592
+349.630005,346.830,345.160
+347.579987,347.353,345.514
+349.799988,348.975,347.329
+349.309998,348.608,347.931
+349.809998,349.638,349.087
+351.959991,349.918,349.107
+352.26001,350.935,350.123
+351.190002,351.932,350.492
+353.809998,352.162,351.324
+349.98999,351.863,352.001
+362.579987,353.998,352.670
+363.730011,356.477,354.003
+358.019989,362.203,356.149
+356.980011,360.702,357.632
+358.350006,357.728,360.946
+358.480011,357.687,359.790
+354.5,357.752,357.635
+354.109985,356.425,357.123
+353.190002,354.152,356.705
+352.559998,353.545,355.445
+352.089996,352.797,353.715
+350.570007,352.072,353.049
+354.26001,351.945,352.524
+354.299988,352.422,352.379
+355.929993,354.552,352.669
+355.549988,355.052,353.347
+358.290009,356.197,355.045
+361.059998,357.382,355.967
+360.200012,359.532,357.269
+362.459991,361.007,358.463
+360.470001,360.998,360.112
+361.670013,361.665,361.073
+361.799988,361.092,361.159
+363.149994,361.960,361.729
+365.519989,362.870,361.750
+367.779999,364.712,362.921
+367.820007,366.657,364.103
+369.5,368.080,365.754
+367.859985,368.387,367.269
+370.429993,369.108,368.322
+370.480011,369.153,368.801
+366.820007,369.845,369.201
+363.279999,368.060,368.625
+360.160004,364.530,368.083
+361.709991,361.978,366.103
+359.420013,360.553,363.369
+357.779999,360.292,361.253
+357.059998,358.480,359.901
+350.299988,356.293,358.933
+348.079987,353.310,356.539
+343.040009,348.350,353.816
+343.690002,345.668,350.701
+345.059998,343.593,347.025
+346.339996,344.588,345.339
+345.450012,345.552,344.218
+348.559998,346.413,345.145
+348.429993,346.983,346.171
+345.660004,348.033,346.780
+345.089996,346.950,346.879
+346.230011,345.565,347.327
+345.390015,345.520,346.527
+340.890015,345.060,345.268
+338.660004,342.768,344.465
+335.859985,339.308,343.237
+336.839996,337.423,341.003
+338.630005,336.648,338.599
+336.899994,337.447,337.428
+336.160004,337.642,336.834
+331.709991,335.788,336.897
+337.410004,334.885,336.671
+341.329987,335.213,336.028
+343.75,339.773,336.419
+349.019989,343.418,337.913
+351.809998,346.850,342.231
+346.630005,349.552,345.264
+346.170013,349.143,347.313
+346.299988,346.422,348.725
+348.179993,346.548,348.324
+350.559998,347.637,346.910
+350.01001,349.278,347.448
+354.25,350.992,348.678
+356.790009,352.553,350.564
+359.859985,356.032,352.602
+358.929993,358.170,354.405
+361.329987,359.795,357.145
+361,360.075,358.923
+361.799988,361.298,360.187
+362.679993,361.547,360.617
+361.339996,362.017,361.517
+360.049988,361.795,361.531
+358.690002,360.468,361.502
\ No newline at end of file
diff --git a/trend/wma.go b/trend/wma.go
index 00260b07..a2556995 100644
--- a/trend/wma.go
+++ b/trend/wma.go
@@ -21,15 +21,18 @@ type Wma[T helper.Number] struct {
// NewWmaWith function initializes a new WMA instance with the given parameters.
func NewWmaWith[T helper.Number](period int) *Wma[T] {
+ if period <= 0 {
+ panic("period must be greater than 0")
+ }
return &Wma[T]{
Period: period,
}
}
-// Compute function takes a channel of numbers and computes the WMA and the signal line.
+// Compute computes the WMA over the input stream.
func (w *Wma[T]) Compute(values <-chan T) <-chan T {
window := helper.NewRing[T](w.Period)
-
+ divisor := T(w.Period) * (T(w.Period) + T(1)) / T(2.0)
wmas := helper.Map(values, func(value T) T {
window.Put(value)
@@ -40,10 +43,11 @@ func (w *Wma[T]) Compute(values <-chan T) <-chan T {
var sum T
for i := 0; i < w.Period; i++ {
- sum += window.At(i) * T(i+1) / T(w.Period)
+ v := window.At(i)
+ sum += v * T(w.Period-i)
}
- return sum / 2
+ return sum / divisor
})
wmas = helper.Skip(wmas, w.IdlePeriod())
diff --git a/trend/wma_test.go b/trend/wma_test.go
index 9e10315d..8e2deb31 100644
--- a/trend/wma_test.go
+++ b/trend/wma_test.go
@@ -11,10 +11,12 @@ import (
"github.com/cinar/indicator/v2/trend"
)
+// TestWma tests the WMA indicator with 2 different periods, WMA(3) and WMA(5).
func TestWma(t *testing.T) {
type Data struct {
Close float64
- Wma float64
+ Wma3 float64
+ Wma5 float64
}
input, err := helper.ReadFromCsvFile[Data]("testdata/wma.csv")
@@ -22,18 +24,24 @@ func TestWma(t *testing.T) {
t.Fatal(err)
}
- inputs := helper.Duplicate(input, 2)
- closing := helper.Map(inputs[0], func(d *Data) float64 { return d.Close })
- expected := helper.Map(inputs[1], func(d *Data) float64 { return d.Wma })
+ inputs := helper.Duplicate(input, 3)
+ closing := helper.Duplicate(helper.Map(inputs[0], func(d *Data) float64 { return d.Close }), 2)
+ expectedWma3 := helper.Map(inputs[1], func(d *Data) float64 { return d.Wma3 })
+ expectedWma5 := helper.Map(inputs[2], func(d *Data) float64 { return d.Wma5 })
- wma := trend.NewWmaWith[float64](3)
+ wma3 := trend.NewWmaWith[float64](3)
+ wma5 := trend.NewWmaWith[float64](5)
- actual := wma.Compute(closing)
- actual = helper.RoundDigits(actual, 2)
+ actualWma3 := wma3.Compute(closing[0])
+ actualWma5 := wma5.Compute(closing[1])
- expected = helper.Skip(expected, wma.IdlePeriod())
+ actualWma3 = helper.RoundDigits(actualWma3, 3)
+ actualWma5 = helper.RoundDigits(actualWma5, 3)
- err = helper.CheckEquals(actual, expected)
+ expectedWma3 = helper.Skip(expectedWma3, wma3.IdlePeriod())
+ expectedWma5 = helper.Skip(expectedWma5, wma5.IdlePeriod())
+
+ err = helper.CheckEquals(actualWma3, expectedWma3, actualWma5, expectedWma5)
if err != nil {
t.Fatal(err)
}
diff --git a/volatility/testdata/super_trend.csv b/volatility/testdata/super_trend.csv
index 0e2cc3d2..a95833ee 100644
--- a/volatility/testdata/super_trend.csv
+++ b/volatility/testdata/super_trend.csv
@@ -16,237 +16,237 @@ High,Low,Close,SuperTrend
304.190002,297,302,0
308.540009,304.160004,307.820007,0
306.5,297.640015,302.690002,0
-306.570007,300.929993,306.48999,293.93
-308.579987,304.649994,305.549988,299.99
-307.459991,303.26001,303.429993,302.17
-309.380005,305.23999,309.059998,306.57
-309.040009,305.619995,308.899994,305.23
-312.390015,307.380005,309.910004,313.57
-316.890015,311.25,314.549988,310.91
-314.230011,310,312.899994,314.26
-320.160004,313.380005,318.690002,315.79
-320.5,314.75,315.529999,321.24
-316.799988,313.339996,316.350006,319.05
-320.570007,316.600006,320.369995,315.01
-321.320007,317.720001,318.929993,317.59
-318.420013,315.790009,317.640015,317.59
-318.519989,314.25,314.859985,314.59
-315.540009,307.75,308.299988,311.16
-307.23999,303.859985,305.230011,306.5
-310.01001,304.359985,309.869995,304.6
-312.730011,306.850006,310.420013,304.6
-312.829987,307.5,311.299988,304.6
-312.549988,307.709991,311.899994,304.6
-313.679993,309.579987,310.950012,304.73
-311.730011,308.339996,309.170013,305.59
-309.51001,306.809998,307.329987,306.89
-311.859985,305.790009,311.519989,308.75
-312.670013,306.380005,310.570007,308.77
-312.600006,308.299988,311.859985,308.92
-311.549988,305.920013,308.51001,311.98
-308.799988,305.600006,308.429993,310.83
-314.149994,306.630005,312.970001,304.64
-313.410004,308.01001,308.480011,304.64
-311.420013,306.98999,307.209991,304.64
-309.980011,305.279999,309.890015,304.64
-313.73999,309.619995,313.73999,306.82
-314.100006,309.040009,310.790009,307.95
-310.369995,308.279999,309.630005,307.95
-310.200012,306.869995,308.179993,307.51
-308.410004,305.480011,308.23999,310.08
-307.299988,300.5,302.720001,302.42
-305.269989,301.769989,303.160004,303.5
-305.559998,300.25,303.070007,303.5
-305.619995,300.01001,304.019989,300.76
-305.779999,302.01001,304.660004,300.76
-306.149994,303.410004,305.179993,300.76
-305.619995,302.079987,304.619995,300.76
-308.100006,301.450012,307.75,301.3
-312.660004,308.5,312.450012,306.68
-317.290009,312.429993,316.970001,310.43
-316.5,310.230011,311.119995,310.43
-312.679993,309.25,311.369995,310.43
-313.179993,303.940002,304.820007,317.13
-306.720001,301.920013,303.630005,314.34
-306.589996,300.76001,302.880005,313.86
-307.549988,301.679993,305.329987,313.86
-300.549988,294.899994,297.880005,309.55
-304.429993,295.359985,302.01001,309.55
-301.299988,292.420013,293.51001,309.55
-301.51001,295.059998,301.059998,309.55
-305.630005,302.25,303.850006,309.55
-307.049988,299.649994,299.730011,309.55
-302.079987,296.299988,298.369995,307.96
-299.5,293.390015,298.920013,301.04
-303.209991,298.970001,302.140015,300.96
-302.720001,300.589996,302.320007,296.31
-305.380005,303.359985,305.299988,313.88
-307.470001,302.579987,305.079987,294.11
-308.809998,304.98999,308.769989,317.86
-311.5,308.23999,310.309998,299.87
-311,307.070007,309.070007,317.1
-311.070007,307.850006,310.390015,303.47
-313.220001,309.049988,312.51001,314.36
-313.700012,310.329987,312.619995,310.86
-315.940002,311.769989,313.700012,314.35
-316.920013,313.720001,314.549988,313.9
-318.809998,313.26001,318.049988,313.9
-321.880005,318.119995,319.73999,315.66
-323.980011,319,323.790009,315.93
-325.720001,322.5,324.630005,318.64
-324.549988,322.76001,323.089996,319.99
-324.369995,321.320007,323.820007,321.04
-324.850006,321.609985,324.329987,322.99
-326.399994,324.299988,326.049988,323.78
-327.100006,324.109985,324.339996,328.07
-323.73999,319,320.529999,320.12
-326.910004,322.109985,326.230011,326.71
-328.809998,325.190002,328.549988,322.31
-331.839996,328.570007,330.170013,323.74
-330.25,322.76001,325.859985,323.74
-328.070007,323.059998,323.220001,335.63
-325.98999,317.410004,320,335.37
-325.160004,322.619995,323.880005,335.37
-330.690002,325.790009,326.140015,335.37
-326.880005,323.480011,324.869995,335.37
-326.160004,320.149994,322.98999,333.08
-322.959991,319.809998,322.640015,327.46
-324.23999,320.540009,322.48999,324.48
-323.829987,320.130005,323.529999,323.38
-324.690002,322.359985,323.75,318.92
-328.26001,324.820007,327.390015,332.15
-329.980011,325.850006,329.76001,322.79
-333.940002,329.119995,330.390015,334.9
-331.48999,328.350006,329.130005,328.25
-329.269989,322.970001,323.109985,327.55
-323,319.559998,320.200012,324.72
-320.559998,317.709991,319.019989,323.06
-322.630005,319.670013,320.600006,323.06
-322.470001,319,322.190002,323.06
-322.410004,319.390015,321.079987,322.19
-323.220001,319.529999,323.119995,320.84
-330.670013,324.420013,329.480011,325.06
-330.890015,327.570007,328.579987,325.48
-334.160004,328.679993,333.410004,325.67
-335.820007,331.429993,335.420013,326.64
-336.320007,334.100006,335.950012,329.27
-337.589996,334.920013,335.290009,332.24
-335.350006,332.220001,333.600006,332.24
-336.619995,332.200012,336.390015,334.24
-340.380005,334.089996,335.899994,338.51
-341.679993,335.540009,339.820007,334.99
-341.299988,337.660004,338.309998,334.99
-339.279999,336.619995,338.670013,334.99
-341.350006,336.369995,338.609985,334.99
-338.850006,335.660004,336.959991,334.99
-337.470001,334.190002,335.25,334.99
-335.829987,331.839996,334.119995,335.47
-336.730011,334.369995,335.339996,335.42
-336.399994,332.609985,334.149994,335.25
-337.01001,334.140015,336.910004,336.74
-342.5,338.399994,341,340.3
-342.079987,338.410004,342,340.3
-341.890015,338.700012,341.559998,340.3
-341.799988,338.910004,341.459991,340.3
-344.070007,340.390015,340.899994,340.3
-343.480011,339.869995,341.130005,340.3
-343.839996,340.929993,343.369995,340.3
-346.440002,344.309998,345.350006,344.05
-346.209991,343.450012,343.540009,345.32
-345,340.51001,341.089996,343.71
-345.720001,341.089996,344.25,341.03
-347.25,343.540009,345.339996,341.85
-345.380005,341.98999,342.429993,341.85
-346.790009,342.850006,346.609985,341.85
-347.619995,345.100006,345.76001,341.93
-351.190002,346.279999,349.630005,343.72
-349.660004,345.540009,347.579987,343.72
-351.089996,347.519989,349.799988,344.51
-351.269989,348.600006,349.309998,346.23
-351,348.320007,349.809998,347.59
-352.329987,350.209991,351.959991,350.97
-353.420013,351.25,352.26001,350.94
-352.890015,349.690002,351.190002,353.62
-354.470001,349.420013,353.809998,353.09
-355.109985,349.390015,349.98999,354.1
-364.630005,355.149994,362.579987,348.64
-364.25,358.850006,363.730011,348.64
-364.429993,356.059998,358.019989,348.64
-362.350006,355.920013,356.980011,348.64
-359.25,353.200012,358.350006,348.64
-358.950012,356.809998,358.480011,348.64
-357.920013,353.670013,354.5,348.64
-358.720001,353.380005,354.109985,353.46
-356.299988,351.880005,353.190002,351.96
-354.299988,351.25,352.559998,358.54
-354.179993,349.609985,352.089996,344.72
-353.5,349.660004,350.570007,358.75
-354.320007,351.540009,354.26001,346.94
-357.230011,354.130005,354.299988,360.5
-357.350006,352.920013,355.929993,352.12
-358.410004,354.529999,355.549988,357.84
-358.589996,354.01001,358.290009,355.71
-362.679993,358.600006,361.059998,358.37
-362.470001,359.25,360.200012,358.37
-363.390015,360.600006,362.459991,359.42
-366.470001,360,360.470001,359.42
-362.799988,359.26001,361.670013,359.42
-363.299988,360.869995,361.799988,359.42
-364.829987,361.769989,363.149994,361.05
-366.609985,364.51001,365.519989,364.62
-370.429993,365.470001,367.779999,366.75
-370.839996,365.970001,367.820007,366.75
-370.220001,368.26001,369.5,367.14
-370.200012,367.519989,367.859985,367.36
-371.329987,367.790009,370.429993,368.37
-373.339996,368.459991,370.480011,368.96
-371.339996,366.730011,366.820007,372.24
-367.200012,362.940002,363.279999,369.24
-363.420013,359.76001,360.160004,366.12
-361.890015,357.269989,361.709991,364.82
-360.790009,357.950012,359.420013,364.74
-360.519989,354.269989,357.779999,363.86
-359.470001,356.670013,357.059998,363.86
-357.5,348.549988,350.299988,361
-350,345.410004,348.079987,357.02
-348.23999,342.130005,343.040009,355.68
-344.01001,339.51001,343.690002,352.04
-345.940002,342.369995,345.059998,352.04
-348.76001,341.859985,346.339996,352.04
-345.899994,342.829987,345.450012,349.64
-349.51001,345.5,348.559998,349.64
-349.600006,344.920013,348.429993,348.61
-348.660004,343.019989,345.660004,346.79
-348.440002,343.880005,345.089996,346.79
-349.940002,345.829987,346.230011,346.79
-348.410004,344.149994,345.390015,346.79
-344.829987,339.959991,340.890015,345.26
-342.690002,338.450012,338.660004,343.89
-340,334.350006,335.859985,341.29
-338.880005,333.48999,336.839996,341.06
-339.850006,337.769989,338.630005,341.06
-339.619995,336.549988,336.899994,340.39
-338.320007,335.459991,336.160004,337.02
-336.190002,330.579987,331.709991,333.01
-338.359985,332.179993,337.410004,333.96
-341.48999,337.5,341.329987,336.94
-345.329987,340.579987,343.75,339.13
-349.390015,344.5,349.019989,341.5
-354.350006,349.790009,351.809998,345.28
-354.029999,344.059998,346.630005,345.28
-346.950012,344.299988,346.170013,345.28
-348,344.690002,346.299988,345.28
-350.109985,346.880005,348.179993,345.28
-351.200012,348.600006,350.559998,348.17
-350.649994,348.809998,350.01001,347.37
-355.950012,351.25,354.25,357.31
-357.309998,354.480011,356.790009,351.06
-360,357.230011,359.859985,363.13
-360.559998,358.070007,358.929993,355.38
-362.609985,358.179993,361.329987,362.84
-363.029999,360.25,361,360.44
-362.459991,360.049988,361.799988,361.92
-363.190002,361.23999,362.679993,361.09
-362.640015,359.579987,361.339996,362.24
-362.119995,359.209991,360.049988,359.72
-361.519989,358.299988,358.690002,359.59
+306.570007,300.929993,306.48999,281.25
+308.579987,304.649994,305.549988,285.09
+307.459991,303.26001,303.429993,285.82
+309.380005,305.23999,309.059998,289.39
+309.040009,305.619995,308.899994,291.29
+312.390015,307.380005,309.910004,293.77
+316.890015,311.25,314.549988,299.18
+314.230011,310,312.899994,299.9
+320.160004,313.380005,318.690002,306.53
+320.5,314.75,315.529999,309.03
+316.799988,313.339996,316.350006,309.03
+320.570007,316.600006,320.369995,309.03
+321.320007,317.720001,318.929993,309.03
+318.420013,315.790009,317.640015,309.03
+318.519989,314.25,314.859985,309.03
+315.540009,307.75,308.299988,323.37
+307.23999,303.859985,305.230011,317.17
+310.01001,304.359985,309.869995,317.17
+312.730011,306.850006,310.420013,317.17
+312.829987,307.5,311.299988,317.17
+312.549988,307.709991,311.899994,317.17
+313.679993,309.579987,310.950012,317.17
+311.730011,308.339996,309.170013,317.17
+309.51001,306.809998,307.329987,317.17
+311.859985,305.790009,311.519989,317.17
+312.670013,306.380005,310.570007,317.17
+312.600006,308.299988,311.859985,317.17
+311.549988,305.920013,308.51001,317.17
+308.799988,305.600006,308.429993,316.95
+314.149994,306.630005,312.970001,316.95
+313.410004,308.01001,308.480011,316.95
+311.420013,306.98999,307.209991,316.95
+309.980011,305.279999,309.890015,316.95
+313.73999,309.619995,313.73999,316.95
+314.100006,309.040009,310.790009,316.95
+310.369995,308.279999,309.630005,316.95
+310.200012,306.869995,308.179993,316.95
+308.410004,305.480011,308.23999,316.95
+307.299988,300.5,302.720001,315.54
+305.269989,301.769989,303.160004,312.61
+305.559998,300.25,303.070007,311.05
+305.619995,300.01001,304.019989,311.04
+305.779999,302.01001,304.660004,311.04
+306.149994,303.410004,305.179993,311.04
+305.619995,302.079987,304.619995,311.04
+308.100006,301.450012,307.75,311.04
+312.660004,308.5,312.450012,301.27
+317.290009,312.429993,316.970001,301.91
+316.5,310.230011,311.119995,301.91
+312.679993,309.25,311.369995,301.91
+313.179993,303.940002,304.820007,301.91
+306.720001,301.920013,303.630005,301.91
+306.589996,300.76001,302.880005,301.91
+307.549988,301.679993,305.329987,301.91
+300.549988,294.899994,297.880005,314
+304.429993,295.359985,302.01001,314
+301.299988,292.420013,293.51001,314
+301.51001,295.059998,301.059998,314
+305.630005,302.25,303.850006,314
+307.049988,299.649994,299.730011,314
+302.079987,296.299988,298.369995,314
+299.5,293.390015,298.920013,314
+303.209991,298.970001,302.140015,314
+302.720001,300.589996,302.320007,314
+305.380005,303.359985,305.299988,314
+307.470001,302.579987,305.079987,314
+308.809998,304.98999,308.769989,314
+311.5,308.23999,310.309998,314
+311,307.070007,309.070007,314
+311.070007,307.850006,310.390015,313.19
+313.220001,309.049988,312.51001,313.19
+313.700012,310.329987,312.619995,313.19
+315.940002,311.769989,313.700012,309.01
+316.920013,313.720001,314.549988,309.01
+318.809998,313.26001,318.049988,309.01
+321.880005,318.119995,319.73999,312.34
+323.980011,319,323.790009,312.73
+325.720001,322.5,324.630005,314.33
+324.549988,322.76001,323.089996,314.33
+324.369995,321.320007,323.820007,314.33
+324.850006,321.609985,324.329987,314.33
+326.399994,324.299988,326.049988,314.9
+327.100006,324.109985,324.339996,315.75
+323.73999,319,320.529999,315.75
+326.910004,322.109985,326.230011,317.64
+328.809998,325.190002,328.549988,320.86
+331.839996,328.570007,330.170013,324.31
+330.25,322.76001,325.859985,324.31
+328.070007,323.059998,323.220001,333.65
+325.98999,317.410004,320,332.69
+325.160004,322.619995,323.880005,332.69
+330.690002,325.790009,326.140015,332.69
+326.880005,323.480011,324.869995,332.69
+326.160004,320.149994,322.98999,332.69
+322.959991,319.809998,322.640015,332.69
+324.23999,320.540009,322.48999,332.69
+323.829987,320.130005,323.529999,332.69
+324.690002,322.359985,323.75,332.69
+328.26001,324.820007,327.390015,332.69
+329.980011,325.850006,329.76001,332.69
+333.940002,329.119995,330.390015,332.69
+331.48999,328.350006,329.130005,332.69
+329.269989,322.970001,323.109985,331.99
+323,319.559998,320.200012,326.64
+320.559998,317.709991,319.019989,326.01
+322.630005,319.670013,320.600006,326.01
+322.470001,319,322.190002,326.01
+322.410004,319.390015,321.079987,326.01
+323.220001,319.529999,323.119995,326.01
+330.670013,324.420013,329.480011,317.18
+330.890015,327.570007,328.579987,319.51
+334.160004,328.679993,333.410004,322.17
+335.820007,331.429993,335.420013,325.13
+336.320007,334.100006,335.950012,325.89
+337.589996,334.920013,335.290009,325.89
+335.350006,332.220001,333.600006,325.89
+336.619995,332.200012,336.390015,325.89
+340.380005,334.089996,335.899994,325.89
+341.679993,335.540009,339.820007,327.49
+341.299988,337.660004,338.309998,330.23
+339.279999,336.619995,338.670013,330.23
+341.350006,336.369995,338.609985,330.31
+338.850006,335.660004,336.959991,330.31
+337.470001,334.190002,335.25,330.31
+335.829987,331.839996,334.119995,330.31
+336.730011,334.369995,335.339996,330.31
+336.399994,332.609985,334.149994,330.31
+337.01001,334.140015,336.910004,330.31
+342.5,338.399994,341,332.38
+342.079987,338.410004,342,332.41
+341.890015,338.700012,341.559998,332.76
+341.799988,338.910004,341.459991,333.43
+344.070007,340.390015,340.899994,334.72
+343.480011,339.869995,341.130005,334.72
+343.839996,340.929993,343.369995,334.72
+346.440002,344.309998,345.350006,335.56
+346.209991,343.450012,343.540009,335.56
+345,340.51001,341.089996,335.56
+345.720001,341.089996,344.25,335.61
+347.25,343.540009,345.339996,337.72
+345.380005,341.98999,342.429993,337.72
+346.790009,342.850006,346.609985,337.72
+347.619995,345.100006,345.76001,338
+351.190002,346.279999,349.630005,339.67
+349.660004,345.540009,347.579987,339.67
+351.089996,347.519989,349.799988,339.67
+351.269989,348.600006,349.309998,339.67
+351,348.320007,349.809998,339.67
+352.329987,350.209991,351.959991,341.35
+353.420013,351.25,352.26001,342.52
+352.890015,349.690002,351.190002,342.52
+354.470001,349.420013,353.809998,343.71
+355.109985,349.390015,349.98999,344.84
+364.630005,355.149994,362.579987,353.77
+364.25,358.850006,363.730011,354.88
+364.429993,356.059998,358.019989,354.88
+362.350006,355.920013,356.980011,354.88
+359.25,353.200012,358.350006,354.88
+358.950012,356.809998,358.480011,354.88
+357.920013,353.670013,354.5,368.22
+358.720001,353.380005,354.109985,368.22
+356.299988,351.880005,353.190002,368.22
+354.299988,351.25,352.559998,368.22
+354.179993,349.609985,352.089996,366.53
+353.5,349.660004,350.570007,363.03
+354.320007,351.540009,354.26001,360.55
+357.230011,354.130005,354.299988,360.55
+357.350006,352.920013,355.929993,359.99
+358.410004,354.529999,355.549988,359.99
+358.589996,354.01001,358.290009,359.99
+362.679993,358.600006,361.059998,353.62
+362.470001,359.25,360.200012,353.62
+363.390015,360.600006,362.459991,353.62
+366.470001,360,360.470001,354.1
+362.799988,359.26001,361.670013,354.1
+363.299988,360.869995,361.799988,354.1
+364.829987,361.769989,363.149994,354.1
+366.609985,364.51001,365.519989,355.1
+370.429993,365.470001,367.779999,357.82
+370.839996,365.970001,367.820007,358.74
+370.220001,368.26001,369.5,359.8
+370.200012,367.519989,367.859985,359.8
+371.329987,367.790009,370.429993,360.86
+373.339996,368.459991,370.480011,363.35
+371.339996,366.730011,366.820007,363.35
+367.200012,362.940002,363.279999,374.37
+363.420013,359.76001,360.160004,371.16
+361.890015,357.269989,361.709991,368.99
+360.790009,357.950012,359.420013,368.42
+360.519989,354.269989,357.779999,367.09
+359.470001,356.670013,357.059998,367.09
+357.5,348.549988,350.299988,365.21
+350,345.410004,348.079987,359.98
+348.23999,342.130005,343.040009,357.47
+344.01001,339.51001,343.690002,354.84
+345.940002,342.369995,345.059998,354.84
+348.76001,341.859985,346.339996,354.84
+345.899994,342.829987,345.450012,354.84
+349.51001,345.5,348.559998,354.84
+349.600006,344.920013,348.429993,354.84
+348.660004,343.019989,345.660004,354.84
+348.440002,343.880005,345.089996,354.84
+349.940002,345.829987,346.230011,354.84
+348.410004,344.149994,345.390015,354.84
+344.829987,339.959991,340.890015,352.9
+342.690002,338.450012,338.660004,351.18
+340,334.350006,335.859985,347.5
+338.880005,333.48999,336.839996,347.5
+339.850006,337.769989,338.630005,347.5
+339.619995,336.549988,336.899994,347.5
+338.320007,335.459991,336.160004,347.5
+336.190002,330.579987,331.709991,345.13
+338.359985,332.179993,337.410004,345.13
+341.48999,337.5,341.329987,345.13
+345.329987,340.579987,343.75,345.13
+349.390015,344.5,349.019989,337.41
+354.350006,349.790009,351.809998,342.83
+354.029999,344.059998,346.630005,342.83
+346.950012,344.299988,346.170013,342.83
+348,344.690002,346.299988,342.83
+350.109985,346.880005,348.179993,342.83
+351.200012,348.600006,350.559998,342.83
+350.649994,348.809998,350.01001,342.83
+355.950012,351.25,354.25,342.83
+357.309998,354.480011,356.790009,342.83
+360,357.230011,359.859985,348.38
+360.559998,358.070007,358.929993,352.07
+362.609985,358.179993,361.329987,356.17
+363.029999,360.25,361,356.65
+362.459991,360.049988,361.799988,356.65
+363.190002,361.23999,362.679993,356.65
+362.640015,359.579987,361.339996,356.65
+362.119995,359.209991,360.049988,356.65
+361.519989,358.299988,358.690002,356.65