-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathsta_inds_test.go
More file actions
428 lines (417 loc) · 62.4 KB
/
sta_inds_test.go
File metadata and controls
428 lines (417 loc) · 62.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
package banta
import (
"github.com/banbox/banta/tav"
"math"
"testing"
)
func getTestCases() []CaseItem {
// binance/swap/BTC/USDT 20230701-20230827
sumArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 274199.19999999995, 274022.49999999994, 274018.19999999995, 273238.1, 273923.69999999995, 273728.6, 274130.6, 274019.5, 273876.3, 273574.1, 273072.69999999995, 272255.29999999993, 271777.79999999993, 270119.5999999999, 269897.0999999999, 268784.49999999994, 267783.99999999994, 266993.89999999997, 266357.99999999994, 265762.39999999997, 265310.49999999994, 264690.19999999995, 264127.49999999994, 263757.89999999997, 263764.19999999995, 263728.1, 263493.19999999995, 263341.19999999995, 263117.19999999995, 262980.79999999993, 263468.69999999995, 263820.69999999995, 263563.19999999995, 263808.6, 264049.1, 264241.3, 264603.1, 264716, 264227.7, 261078.40000000002, 257547.7, 254192.30000000002, 250952.7, 247647.40000000002, 244398.50000000003, 241398.20000000004, 238374.00000000003, 235711.30000000002, 235105.90000000002, 235151.50000000003}
smaArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 30466.577777777773, 30446.944444444438, 30446.46666666666, 30359.788888888885, 30435.96666666666, 30414.288888888885, 30458.955555555553, 30446.61111111111, 30430.699999999997, 30397.12222222222, 30341.411111111105, 30250.58888888888, 30197.533333333326, 30013.28888888888, 29988.56666666666, 29864.944444444438, 29753.77777777777, 29665.988888888885, 29595.33333333333, 29529.155555555553, 29478.944444444438, 29410.02222222222, 29347.499999999993, 29306.43333333333, 29307.133333333328, 29303.12222222222, 29277.02222222222, 29260.133333333328, 29235.24444444444, 29220.08888888888, 29274.299999999996, 29313.411111111105, 29284.799999999996, 29312.066666666666, 29338.788888888885, 29360.144444444442, 29400.344444444443, 29412.88888888889, 29358.633333333335, 29008.711111111115, 28616.411111111112, 28243.58888888889, 27883.633333333335, 27516.37777777778, 27155.38888888889, 26822.022222222226, 26486.000000000004, 26190.144444444446, 26122.87777777778, 26127.94444444445}
vwmaArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 30524.599643405712, 30514.947778072055, 30518.73472309875, 30456.35125607252, 30561.6906998281, 30571.491940019365, 30596.344888113847, 30625.932222795036, 30578.763946722098, 30520.68031661973, 30475.612235503984, 30396.577778674644, 30344.774942173266, 30089.91299329545, 29964.10592800004, 29848.88716224751, 29774.985707611893, 29690.46221220152, 29634.867703120217, 29567.390982826124, 29492.60358258962, 29428.407632842318, 29387.756345074333, 29312.21865963103, 29316.914650750692, 29312.63520407313, 29281.90217571912, 29273.797795962546, 29259.965305452115, 29230.72511109319, 29315.838091154554, 29369.12733541649, 29387.74815897663, 29390.76956763887, 29416.513237722298, 29455.91685299767, 29462.82320005344, 29461.46986192912, 29443.68254303843, 28445.962714246307, 27837.615204021622, 27557.626796029796, 27356.826089102113, 27209.127081137973, 27007.291985516127, 26698.107930434846, 26503.991087758564, 26258.531212277307, 26111.93120533944, 26099.481219512756}
emaArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 30464.45, 30614.796153846157, 30565.335207100594, 30520.883636777427, 30474.10153881167, 30420.562840532948, 30332.107018912495, 30264.93670831057, 30192.023368570484, 30145.77361955964, 30090.039216550467, 30087.079337081163, 29945.036362145598, 29832.92307566166, 29756.473371713713, 29672.354391450062, 29615.05371584236, 29572.59929802046, 29526.214790632697, 29479.227899766127, 29513.377453648263, 29460.565537702376, 29417.432378055855, 29368.765858354956, 29320.909572454195, 29283.215792076626, 29270.82874714176, 29345.932016812258, 29380.83478345653, 29390.506355232446, 29394.35153135053, 29398.405141911986, 29382.235120079375, 29387.968178528703, 29357.32692029352, 29258.41508640221, 28850.920457724944, 28418.79423345957, 28060.256659081173, 27770.355634607145, 27515.747075436815, 27289.385986908077, 27155.51121969145, 27003.063339738917, 26856.699749009855, 26725.561326085262, 26627.428814379837}
ema2Arr := []float64{30573.6, 30579.615384615383, 30667.213017751477, 30680.887938097403, 30651.27440915934, 30531.755269288675, 30500.392920167338, 30464.840163218516, 30416.06475349259, 30413.116329878343, 30443.15997143552, 30431.735360445444, 30587.11453576153, 30541.912299490526, 30501.06425341506, 30457.331291351205, 30406.372631143327, 30320.09991865974, 30254.776854250547, 30183.42656898123, 30138.49940452258, 30083.884111519103, 30081.871171285395, 29940.629452626104, 29829.194152222088, 29753.318128803305, 29669.68457052587, 29612.794636598814, 29570.687769429765, 29524.597343363646, 29477.85929053847, 29512.219399686397, 29459.585645888492, 29416.603238828724, 29368.06427900892, 29320.315928392163, 29282.713477870293, 29270.403712044095, 29345.572371729617, 29380.5304683866, 29390.248857865587, 29394.13364896319, 29398.22077989193, 29382.07912144702, 29387.83617968594, 29357.215228965026, 29258.320578355022, 28850.840489377326, 28418.72656793466, 28060.19940363702, 27770.307187692862, 27515.70608189396, 27289.351300064118, 27155.481869285024, 27003.038504779634, 26856.678734813537, 26725.543544842225, 26627.413768712653}
rmaArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 30464.45, 30545.8875, 30524.838541666664, 30504.135329861107, 30480.190719039347, 30450.6831591194, 30400.259562526116, 30358.19626564894, 30310.929910178194, 30275.969084330012, 30234.929993969177, 30221.252494471744, 30133.131453265763, 30056.728832160283, 29996.668096146925, 29931.08742146801, 29878.48846967901, 29833.53943053909, 29786.669477994168, 29739.513688161318, 29736.32088081454, 29689.135807413328, 29646.724490128883, 29601.255782618144, 29555.959467399964, 29515.954511783297, 29489.849969134688, 29512.279138373466, 29517.322543509006, 29511.18733154992, 29503.213387254094, 29496.337271649583, 29479.417499012117, 29474.42437409444, 29450.6223429199, 29389.27048100991, 29157.639607592413, 28898.01130695971, 28663.868698046397, 28456.537973209197, 28261.44314210843, 28076.68954693273, 27938.565418021666, 27790.734966519856, 27645.815385976533, 27509.022437145155, 27390.57890071639}
ram2Arr := []float64{30573.6, 30576.858333333334, 30624.536805555555, 30635.500405092593, 30623.242038001543, 30560.838534834747, 30541.426990265183, 30518.749741076415, 30487.83726265338, 30480.25915743226, 30490.93756097957, 30480.76776423127, 30560.84545054533, 30538.54999633322, 30516.70416330545, 30491.71214969666, 30461.24447055527, 30409.940764675666, 30367.070700952696, 30319.064809206637, 30283.426075106083, 30241.76556884724, 30227.518438109968, 30138.875234934134, 30061.993965356287, 30001.49446824326, 29935.511595889657, 29882.54396289885, 29837.25696599061, 29790.07721882473, 29742.637450589333, 29739.184329706884, 29691.760635564642, 29649.130582600923, 29603.461367384178, 29557.981253435493, 29517.807815649205, 29491.548831011773, 29513.836428427458, 29518.750059391838, 29512.49588777585, 29504.412897127862, 29497.436822367206, 29480.42542050327, 29475.348302127997, 29451.469276950666, 29390.046837204776, 29158.35126743771, 28898.663661817896, 28664.46668999974, 28457.08613249976, 28261.94562145811, 28077.15015300327, 27938.987640252995, 27791.122003565244, 27646.170169934805, 27509.34765577357, 27390.877017792438}
trArr := []float64{math.NaN(), 650.0999999999985, 835.7999999999993, 719.4000000000015, 699.4000000000015, 1750, 763.5999999999985, 353.2000000000007, 401.40000000000146, 1111.2000000000007, 543.5, 794.5, 1617, 1763.4000000000015, 159.79999999999927, 391.59999999999854, 699.7000000000007, 827.5, 433.5, 951.2000000000007, 350.2999999999993, 383.7999999999993, 649.2999999999993, 1261.7000000000007, 346.5, 587.5, 492.90000000000146, 422.90000000000146, 160.40000000000146, 436.5, 425.7999999999993, 1185, 1153.6000000000022, 484.59999999999854, 543.7999999999993, 185, 220.5, 592.2000000000007, 1117.5999999999985, 787.7000000000007, 426.09999999999854, 345.09999999999854, 110, 206.40000000000146, 616.7000000000007, 442.09999999999854, 552.3000000000029, 4194.9000000000015, 1218, 486, 336.5, 480, 848.2000000000007, 1006, 733.2999999999993, 545.5999999999985, 160.40000000000146, 218}
atrArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 868.7357142857145, 834.6545918367348, 825.014978134111, 825.1924796959602, 797.214445431963, 808.2134136153943, 775.5053126428661, 747.5263617398043, 740.510193044104, 777.7380363980966, 746.9353195125183, 735.5470824044812, 718.2151479470183, 697.1212088079457, 658.7839796073782, 642.9065524925655, 627.3989416002395, 667.2275886287938, 701.9684751553086, 686.442155501358, 676.2534301084038, 641.163899386375, 611.1164780016339, 609.7653010015173, 646.0392080728374, 656.1578360676348, 639.7251334913751, 618.6804810991339, 582.3461610206243, 555.4928638048656, 559.8648021045182, 551.453030525624, 551.5135283452224, 811.7554191777066, 840.7728892364419, 815.431968576696, 781.2225422497893, 759.7066463748044, 766.0276002051755, 783.168485904806, 779.6064511973198, 762.8917046832254, 719.856582920138, 684.0096841401281}
macdArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), -432.8189359786011, -444.3755230798597, -441.170279092752, -430.50440099353364, -422.66641215803975, -415.7213620771472, -367.2200110214326, -367.40248513993356, -362.5528282796149, -360.93155491862854, -359.010254650977, -351.9618256133472, -332.31349146006687, -268.75524115240114, -230.74971465889394, -208.64225413368695, -191.19347732181632, -174.9291253772244, -170.35586815137867, -154.76421798125375, -159.18826166014333, -198.68415614747937, -395.26032241365465, -590.0472296317275, -732.248399336695, -828.3268268908796, -898.9885370613556, -949.7692098494881, -948.8324810100021, -957.5956423920543, -962.55486407438, -959.2522045482874, -939.0800102808571}
rsiArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 47.259212807554704, 46.70629211781631, 45.8275752808261, 43.125379869273104, 43.760684849102844, 42.68535167846982, 44.10644555140259, 42.876051193200524, 47.10701411799357, 37.63104526409479, 38.403425773341404, 40.22115784448889, 38.91619668986348, 40.40333995062702, 41.07475694985178, 40.228100031133394, 39.578221058849, 48.1873373099479, 41.19850655078743, 41.372647790121036, 40.36443558254441, 39.79147258385859, 40.17498273779458, 42.90370502456327, 53.026566637768326, 49.84133970135824, 47.70183518334326, 47.224962254061744, 47.32952422046857, 44.978274547034694, 47.7474393187741, 43.4430835586769, 36.21354076590418, 20.173578633140377, 17.874268771834664, 18.686651486974352, 20.29657492693332, 20.002028758934504, 19.641782747405784, 27.105353979353485, 25.380843118505094, 24.632435113606412, 24.30835157555169, 26.14944480511085}
upDnArr := []float64{0, 1, 2, -1, -2, -3, 1, -1, -2, 1, 2, -1, 1, -1, -2, -3, -4, -5, 1, -1, 1, -1, 1, -1, 1, 2, -1, 1, 2, -1, -2, 1, -1, 1, -1, -2, 1, 2, 3, -1, -2, -3, 1, -1, 1, -1, -2, -3, -4, 1, 2, -1, -2, 1, -1, -2, -3, 1}
crsi0Arr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 61.300149016003445, 34.76391851952298, 73.27755290200521, 19.730051695968537, 51.984661074074516, 61.48811476091663, 24.999521022160167, 55.8912058718405, 57.12269166425398, 34.249383574357964, 32.60090519143829, 80.78844074102294, 28.261671924981044, 53.51617941109644, 33.83782113348604, 33.852820277335475, 54.08294771952654, 75.82016046860133, 91.04773538510545, 32.44544357472909, 27.362715495950507, 34.34447886956901, 58.40799334750259, 29.419628274942056, 68.4423390678878, 22.949310209795957, 13.44267608801166, 5.681877952067616, 4.986161056277674, 54.16514085381732, 57.985261639242054, 30.37550075076227, 23.288017244510396, 71.64014743255234, 29.911047527131572, 32.03134517809554, 32.58514068358683, 65.42278750137415}
crsi1Arr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 36.37541067354891, 19.95503439555915, 43.465090025478, 15.73859993155096, 28.838122104740748, 33.84722371928182, 15.785592293755762, 35.106338720436185, 37.33958987805131, 18.062697499078716, 15.357837032743248, 52.75842477458668, 20.486688904598036, 34.32678621794639, 20.360296732507248, 19.182073162665958, 35.95611414307439, 45.49668052428198, 55.687617332465095, 25.609552628009414, 20.60970023350882, 19.56214403928885, 45.05361797820489, 20.66746671487748, 42.15880694427201, 20.04100406081208, 14.059692481386351, 8.690670049633985, 7.831676776384627, 28.837728705341103, 31.41857217710833, 6.3741102632544715, 6.411922841785445, 41.259727096984, 19.134994944388982, 16.94587164842278, 15.893703846012253, 39.786209208719434}
perRkArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 0, 15, 0, 30, 0, 5, 10, 5, 15, 25, 15, 15, 40, 5, 10, 0, 0, 5, 30, 75, 70, 70, 70, 75, 50, 70, 25, 0, 0, 0, 5, 10, 10, 5, 25, 20, 10, 0, 20}
kdjKArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 41.59251412429377, 40.38547551789079, 43.31489328311366, 41.03937800795151, 54.42102927104603, 45.70157711771732, 39.62900840105888, 32.16576641959718, 28.892793228680386, 25.324447186467175, 23.624461389617572, 21.06936881756818, 20.731960164093092, 19.5281520141573, 34.485741895766935, 29.8946064528907, 28.028270130019365, 29.293479877035974, 27.489154299575365, 28.177255906215894, 29.81721277464621, 29.436933511013187, 28.09339536542298, 43.619202886368996, 42.76911691199349, 42.42536575288385, 40.44994580227355, 38.17487832167819, 37.05995928114531, 39.11598230284624, 49.78320388817201, 53.243704552898976, 51.68512497186102, 50.04646740166552, 49.06459439331127, 45.701160779228196, 46.14220822589189, 41.530964613013, 27.88796997891727, 30.7354485393475, 29.949461031618032, 29.8069429838719, 30.283840778313756, 30.206789256691753, 29.69188735568628, 32.27109038606571, 32.801945525247, 33.55437654991516, 38.06746039608561, 43.021382509579155}
stochArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), 27.182205091142713, 3.222857142857226, 34.31673728813567, 31.212923728813518, 24.777542372881317, 37.971398305084826, 68.26470588235306, 39.60583153347749, 78.74765771392885, 21.115840681058092, 20.259450694233436, 17.239282456673784, 22.346846846846784, 19.89285714285708, 47.57104454685106, 37.53840245775735, 48.17647058823544, 37.59803921568627, 63.288477712363274, 20.993710691823853, 25.113769340787872, 32.8955922506826, 24.68469639838776, 37.24340175953088, 48.01568627450958, 39.894657637321075, 38.884866039101865, 97.14767932489458, 41.068944963242465, 41.737863434664554, 36.49910590105292, 33.624743360487464, 23.118993671380665, 68.68153622805873, 68.68023218728074, 56.80295974995213, 48.56796580978511, 46.769152261274506, 25.796349319971334, 7.884263740991633, 52.97059715065176, 21.799905764095982, 0.9474327628364803, 39.734022758877344, 28.617035861879824, 30.691698397507682, 34.10529467111456, 36.57774917161317, 49.70091027308202, 74.65268676277856, 57.96854521625154, 50.57011795543911, 47.463958060288284, 31.69456066945604}
smaKdjKArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 37.30755649717518, 41.21115819209047, 55.61546935614055, 48.64511735530738, 45.64362519201231, 24.32860874515855, 22.35666675708752, 19.25796146852044, 20.253030581601966, 18.123809523809502, 18.74693877551022, 17.712287414966003, 33.859533410138276, 34.077930980136706, 36.469618236800365, 25.610610807494698, 26.66666666666667, 28.419287211740095, 28.843696258552644, 30.442320204916978, 29.05994018983218, 42.91783732875024, 47.048693988582016, 52.49254210872268, 39.76863809965331, 37.28723756540164, 34.98465682053997, 37.227630968938364, 49.72526553505039, 58.170127095808176, 59.950106250320516, 51.833941317804175, 47.47932214922079, 44.28143139631311, 44.3664816822947, 39.43569135251218, 26.64492040573343, 23.11362125272966, 21.80329079569762, 31.4432661882489, 29.712343090578738, 30.270743156341624, 29.984135378106856, 32.04808873798256, 33.31841193470317, 35.45079694989522, 38.67217416376253, 45.02736447474808}
highestArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 31149, 31149, 31149, 30756.1, 31441.7, 31441.7, 31441.7, 31441.7, 31441.7, 31441.7, 31441.7, 31441.7, 31441.7, 30293.3, 30276.4, 30216.8, 30126.1, 30070.8, 30070.8, 30070.8, 30070.8, 30070.8, 30070.8, 29701.2, 29701.2, 29701.2, 29701.2, 29701.2, 29701.2, 29701.2, 29759, 29759, 29759, 29759, 29759, 29759, 29759, 29759, 29759, 29572.8, 29443.7, 29420.7, 29420.7, 29419.5, 29419.5, 29188.8, 28714.4, 26609.7, 26419.2, 26419.2}
lowestArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 29874.4, 29874.4, 29874.4, 29874.4, 29874.4, 29874.4, 30147.8, 30147.8, 30126.1, 29845.6, 29845.6, 29791, 29791, 29783.5, 29783.5, 29163.8, 29163.8, 29163.8, 29163.8, 29163.8, 29163.8, 29163.8, 29163.8, 29163.8, 29170.1, 29170.1, 29101.1, 29057.7, 29057.7, 29057.7, 29057.7, 29057.7, 29057.7, 29057.7, 29057.7, 29057.7, 29075.9, 29188.8, 28714.4, 26609.7, 26042.1, 26042.1, 26042.1, 26042.1, 26042.1, 26042.1, 26042.1, 26042.1, 26004.3, 26004.3}
highBarArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 6, 7, 8, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 8, 8, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 7, 8, 7, 8, 8, 8, 8, 3, 4}
aroonUpArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 55.55555555555556, 44.44444444444444, 33.33333333333334, 100, 88.88888888888889, 77.77777777777777, 66.66666666666667, 55.55555555555556, 44.44444444444444, 33.33333333333334, 22.22222222222223, 11.111111111111114, 0, 0, 11.111111111111114, 0, 33.33333333333334, 22.22222222222223, 11.111111111111114, 0, 22.22222222222223, 11.111111111111114, 0, 0, 88.88888888888889, 77.77777777777777, 66.66666666666667, 55.55555555555556, 44.44444444444444, 100, 88.88888888888889, 77.77777777777777, 66.66666666666667, 55.55555555555556, 44.44444444444444, 33.33333333333334, 22.22222222222223, 11.111111111111114, 0, 0, 0, 33.33333333333334, 22.22222222222223, 11.111111111111114, 0, 0, 0, 0, 0}
aroonDnArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 66.66666666666667, 55.55555555555556, 44.44444444444444, 33.33333333333334, 22.22222222222223, 11.111111111111114, 0, 100, 100, 88.88888888888889, 77.77777777777777, 66.66666666666667, 55.55555555555556, 44.44444444444444, 100, 88.88888888888889, 77.77777777777777, 66.66666666666667, 55.55555555555556, 44.44444444444444, 33.33333333333334, 22.22222222222223, 100, 88.88888888888889, 77.77777777777777, 66.66666666666667, 55.55555555555556, 44.44444444444444, 33.33333333333334, 22.22222222222223, 11.111111111111114, 0, 55.55555555555556, 44.44444444444444, 33.33333333333334, 22.22222222222223, 11.111111111111114, 0, 100, 88.88888888888889, 77.77777777777777, 66.66666666666667, 55.55555555555556, 44.44444444444444, 33.33333333333334, 22.22222222222223, 11.111111111111114, 0, 44.44444444444444}
aroonOscArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), -11.111111111111114, -11.111111111111114, -11.1111111111111, 66.66666666666666, 66.66666666666666, 66.66666666666666, 66.66666666666667, -44.44444444444444, -55.55555555555556, -55.55555555555554, -55.55555555555554, -55.55555555555556, -55.55555555555556, -44.44444444444444, -88.88888888888889, -88.88888888888889, -44.44444444444443, -44.44444444444444, -44.44444444444444, -44.44444444444444, -11.111111111111114, -11.111111111111114, -100, -88.88888888888889, 11.111111111111114, 11.1111111111111, 11.111111111111114, 11.111111111111114, 11.1111111111111, 77.77777777777777, 77.77777777777777, 77.77777777777777, 11.111111111111114, 11.111111111111114, 11.1111111111111, 11.111111111111114, 11.111111111111114, 11.111111111111114, -100, -88.88888888888889, -77.77777777777777, -33.33333333333333, -33.33333333333333, -33.33333333333333, -33.33333333333334, -22.22222222222223, -11.111111111111114, 0, -44.44444444444444}
stdDevArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), 233.17264505082903, 415.2175689924494, 425.6949640294085, 288.8038046840789, 205.30537840007997, 183.63963188810848, 152.87635003492284, 152.56708163952098, 448.86692281788834, 423.05229747632865, 438.33616597310333, 463.68621027587204, 488.933224888635, 163.82381511856025, 172.09438573062218, 166.26428359692866, 114.51091476361499, 47.61726577618697, 103.73112551206582, 306.2189543447632, 367.30637130330354, 353.7246918155418, 340.5338596968, 63.17931940120955, 56.61165957645099, 47.7983095935407, 48.39232997077091, 171.7789439948918, 188.83169861016526, 199.45858116411088, 216.7098650269532, 233.95417158067556, 49.54262810953771, 57.592860668662794, 264.65260550389434, 282.08038145181183, 246.59005170525373, 183.7488133295012, 131.5172171238425, 88.94937886236193, 53.54047440955347, 93.04789304438916, 261.2497088993589, 1045.2869397442978, 1393.1812157791967, 1348.408633315584, 1014.3225057150221, 206.3027716730926, 49.69665582310407, 132.3311089653525, 126.45558904216117, 137.3191843844113, 150.90302316388502, 146.52864566357005}
bbandArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 31263.256691056144, 31242.777598521177, 31205.486141764297, 30833.007099192728, 30746.516593224074, 30708.154765111783, 31313.230805589723, 31313.081261981184, 31312.934634961857, 31306.657573165143, 31312.401629807322, 31299.272592140278, 31288.23568020823, 30460.311890696124, 30368.071890628315, 30248.355757754664, 30162.4121803554, 30308.895132806025, 30341.24180079079, 30276.6632678924, 30225.46395668496, 30083.96589084472, 29957.000106174273, 29387.41393998648, 29374.516566659328, 29649.546059392003, 29647.938730385828, 29649.709879675615, 29652.501521230002, 29639.554673341812, 29627.052547454638, 29624.523165934126, 29672.070835934217, 29787.92317915481, 29829.875710057087, 29845.90192776787, 29829.774424394553, 29780.41417653337, 29751.421272738306, 29618.36568217993, 29756.185385462722, 30765.85969034254, 31042.03379466916, 30833.067811824923, 30357.57170262833, 29508.270881203483, 28353.049846552334, 26616.398633132758, 26390.402529209216, 26389.394375410448, 26396.594795225377, 26384.240986614222}
tdArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), -1, -2, -3, -4, -5, 1, 2, 3, 4, -1, -2, -3, -4, -5, -6, -7, -8, -9, 1, -1, -2, -3, -4, 1, 2, -1, 1, 2, -1, -2, -3, -4, -5, 1, 2, 3, 4, 5, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, 1, 2, -1, -2, -3, -4}
adxArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 39.46786350152253, 35.346051051826564, 32.5600220908187, 30.08355190325615, 28.434909596737427, 25.9746555642526, 26.267965732492218, 26.528685882038545, 25.048852433268593, 23.810957121552473, 22.710605733360367, 21.732515610522942, 22.120900263039747, 21.762940879115508, 23.9042170684021, 23.40160916479747, 22.954846583815577, 23.40820268143655, 23.811185879321858, 23.665845170100418, 25.090237768897975, 24.324403789794502, 23.643662475035857, 22.65226837768483, 21.192931807784763, 19.895743745651366, 17.936953642290565, 17.702953922552396, 17.31776658092724, 16.487349111279396, 23.154864268061885, 29.0815444074241, 34.349704531301626, 38.95474050695283, 43.15767578902085, 47.25040936955163, 47.51641569564946, 47.752865763291965, 48.101506637486, 48.411409636769584, 48.40377555464304}
adxByArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 38.71201944784718, 33.99157648502356, 29.902079811261828, 25.350341473460148, 19.67771860657121, 15.44608070007865, 13.525881016608766, 12.70656730514597, 12.60560365024865, 13.709937433943585, 14.814271217638517, 15.287658712271558, 17.012400137997094, 17.50189161468327, 21.231388616099473, 20.271078530554632, 19.310768445009792, 20.873956214173468, 22.360180639269238, 23.34749843407242, 25.88700006889198, 25.185634463953267, 25.175487517756746, 22.324309890376924, 21.27483035954913, 20.22535082872134, 17.523185831432343, 16.323526324945902, 15.445939098552978, 12.516055107470525, 18.983795982206736, 25.45153685694295, 32.30452741129211, 39.65647423809599, 47.118166530028965, 55.741258864607616, 59.491751332051145, 63.419078149693746, 67.98500815788157, 65.14282660891648, 62.01767679500509}
minusDiArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 9.748080290987449, 8.921364180579468, 7.829390582686269, 6.115504966875618, 9.099608831267085, 8.907360557953323, 10.809259053170257, 15.711928697847585, 17.125900607970774, 16.02095425869616, 17.80916707651053, 16.850070206152367, 17.483081616124107, 15.631213922370646, 25.938656268801683, 24.5146046255833, 22.19075753594757, 20.659937976690895, 19.142534862292834, 18.560848366207768, 21.495050039177073, 19.6588422681172, 25.304517785535275, 20.554343809519924, 18.879470559247466, 20.127019056828658, 19.433283812771805, 18.574808078482285, 22.277300155676315, 17.82173015073261, 15.38229718885935, 15.251572169971961, 15.840989367563513, 15.477597915142383, 17.07657861331881, 14.781670882713634, 13.778608551954074, 19.659068662718052, 59.612902713144344, 51.12913301520504, 48.05894921640962, 45.91151961010563, 44.90963839163921, 46.83454030362113, 40.49185464380348, 36.4444673777965, 34.7712576780967, 33.905474893226426, 32.662002889704915}
pluMinDmArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 1797.8444444444442, 1598.0839506172836, 1596.1190672153616, 2288.2725041914327, 2034.020003725718, 1808.017781089527, 1607.126916524024, 1428.5572591324656, 1269.8286747844138, 1128.7365998083678, 1003.3214220518825, 891.8412640461177, 792.7477902632156, 1086.8647024561924, 966.1019577388377, 858.7572957678557, 1054.339818460316, 937.1909497425031, 833.058621993336, 740.4965528829654, 658.2191581181914, 668.3836961050583, 594.118840982274, 853.0056364286895, 758.2272323810573, 673.9797621164954, 599.0931218813292, 586.5272194500704, 521.3575284000626, 1438.9289141333888, 1279.0479236741232, 1136.9314877103318, 1010.6057668536282, 898.316237203225, 798.5033219584221, 933.4807306297092, 829.7606494486304, 737.5650217321158, 655.6133526507696, 582.7674245784618, 518.0154885141883, 476.05821201261034, 423.16285512232025, 376.1447601087291, 1012.150897874425, 899.6896869994889, 799.7241662217679, 710.8659255304602, 676.0808226937395}
rocArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), -0.5779496035795494, -0.014046457842657695, -2.5044142669106506, 2.229151290313148, -0.6399155088492744, 1.3456337198403985, -0.36632935349959006, -0.4730865926863215, -1.0023948679505659, -1.649510311906811, -2.6705087492322415, -1.5723322214502333, -5.273887862297524, -0.7344858434043171, -3.6748094225205183, -3.311071986444627, -2.6226428246603395, -2.1306323210121354, -1.9922730845779415, -1.5169010775066345, -2.075178813973259, -1.8893011231050774, -1.229099325591599, 0.02160212318010435, -0.12356116277556894, -0.8007226615762253, -0.5203750808806663, -0.7645077286953197, -0.46490860319504623, 1.666831789717508, 1.2046213656025846, -0.8669683379796101, 0.8412723987919186, 0.8241890048731673, 0.6604561339605745, 1.2451088695939434, 0.38829408547971966, -1.6721056614628076, -10.582680869652876, -11.939011524103233, -11.395986238142628, -11.013241318352565, -11.234606926415752, -11.090932056135697, -10.198337837148827, -10.360823329496247, -9.273047669462015, -2.2751102041736715, 0.17510108631793206}
heiKenArr := []float64{30516.9, 30510.1125, 30522.08125, 30725.578125, 30840.8515625, 30707.36328125, 30572.281640625, 30326.865820312498, 30288.94541015625, 30257.272705078125, 30317.823852539062, 30417.861926269532, 30476.893463134766, 30725.14673156738, 30769.01086578369, 30530.742932891844, 30388.48396644592, 30232.079483222962, 30065.927241611484, 29991.051120805743, 29942.43806040287, 29901.781530201435, 29858.79076510072, 29922.07038255036, 29730.585191275182, 29464.367595637592, 29395.396297818796, 29343.898148909397, 29316.7240744547, 29317.67453722735, 29291.174768613677, 29285.31238430684, 29293.53119215342, 29376.453096076708, 29281.451548038356, 29188.850774019178, 29127.40038700959, 29102.587693504796, 29080.718846752396, 29333.3719233762, 29522.1109616881, 29517.317980844047, 29464.196490422022, 29440.373245211013, 29399.399122605508, 29383.387061302754, 29335.49353065138, 29150.97176532569, 28160.610882662844, 27214.030441331422, 26629.902720665712, 26377.176360332855, 26235.000680166428, 26063.500340083214, 26165.462670041605, 26206.118835020803, 26136.8969175104, 26087.748458755203}
tnrArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 0.011819849195028483, 0.07752973351141611, 0.07951427562413424, 0.10431411441193686, 0.050647427015146414, 0.09428870408106993, 0.061738970813192975, 0.12138662082796169, 0.07379566527245573, 0.18504718565800352, 0.22666919575113778, 0.1930993534767121, 0.6103468233827514, 0.5634259490198023, 0.5195804538548247, 0.4193486954865726, 0.4290262172284627, 0.28046461427763575, 0.28754521963824364, 0.273847774558863, 0.36280025968405266, 0.037057048944121464, 0.36544001298332474, 0.010460517923205398, 0.07225288509784267, 0.1833212568341999, 0.09489361702127584, 0.06719203649937826, 0.21383103325355224, 0.14491570200297804, 0.10316101263479474, 0.16722270997951427, 0.21190596989683894, 0.08700669282252359, 0.2363771343726811, 0.08544613178648132, 0.1816126601356443, 0.6534119544400764, 0.9339648717239987, 0.9074927728728797, 0.8603549049549767, 0.861532437018664, 0.8665400508174406, 0.6936071626806949, 0.7618969593408387, 0.7551452711648163, 0.7270946797950252, 0.3059788980070327}
cciArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), -12.833275456261807, 19.498884187891075, 4.759811344308125, 202.2551350033539, 42.45360293945736, -55.627265766867154, -62.6816561557437, -115.74775502743907, -138.98827454210576, -94.50162987798892, -84.8053489508662, -72.6157007068114, -76.48179021130527, -0.6507838674427441, -211.19345232567184, -184.8799947681581, -97.55756102597003, -89.23347259998305, -64.37704070975254, -51.845917120439324, -63.012677106634385, -46.58182084992314, -23.120153893623563, 105.0173869846094, -129.9231288517104, -210.0369379696608, -148.57853149304532, -93.32232906261727, -89.18790884258186, 212.0071524363046, 139.95978997892288, 57.60671870572555, 26.03170803473445, 29.384797179689784, 1.8883143355597436, 10.109842133420841, -57.122272258721516, -169.31501994645254, -304.7373194668008, -184.3727566213593, -123.61246355399538, -88.44639786207007, -73.07600802773206, -70.4058459524111, -38.7416233470515, -40.69152371773337, -49.4837901144308, -50.395145608042384, -12.177478849891763}
cmfArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), -0.1343034262316639, -0.12181584252031072, -0.20921567796557222, -0.1407432163217932, -0.1606167698887356, -0.16871638198735464, -0.0006430150264118132, -0.02824058800445338, -0.033980490085024184, -0.0366756223155123, -0.054681172254673595, -0.0754748178168336, -0.014349927401622614, -0.132923512095976, -0.10855756643345107, -0.08926341034169538, -0.09115048122017513, -0.17930871988946753, -0.20615890925636723, -0.17757974948213354, -0.12128027921450639, -0.17090031633828873, 0.015936115375919463, -0.08705648012709566, -0.02234691911059152, -0.010775210581232346, 0.008271150288495363, 0.04362454539799709, 0.1474319757711379, 0.13931578404709696, 0.06085728746171811, 0.0672840879734632, -0.07226364101002405, 0.03465627044069683, 0.020174877483498617, 0.01856831850585744, -0.015834281931221966, -0.12086620222345189, -0.1823256927389124, -0.24328584191982225, -0.18120992888236287, -0.14111578162044697, -0.12136073662344277, -0.03301781608452909, 0.013376431824847983, -0.006395094274375962, 0.02087386951662306, 0.09314840130437799, 0.1403208892099361}
// 和TradingView值有细微差异
kamaArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 30397.985280999786, 30397.625624176315, 30410.815198359527, 30408.90996485168, 30407.713722394903, 30404.905041888727, 30402.02182958698, 30391.485271347934, 30385.597634484988, 30367.191433579323, 30347.968007029645, 30329.518150771226, 30281.22690895444, 30099.04049981215, 29973.323239987243, 29909.268285467406, 29836.348767152853, 29807.125909131075, 29780.69037643141, 29753.870302646756, 29711.184325114544, 29711.109048717153, 29667.29931262247, 29664.85662886359, 29658.27814095047, 29639.90579364749, 29631.558354076707, 29626.83236543388, 29631.769496841847, 29630.411056789762, 29627.416898733074, 29621.632809829305, 29614.216714240607, 29609.83064715238, 29601.686925638955, 29596.13422584413, 29569.477399794065, 28948.70808243116, 27806.387571368403, 27165.06626139448, 26829.34457952104, 26586.44257199781, 26400.114346839655, 26404.551568254403, 26338.84434731887, 26261.43110776527, 26196.546119228602, 26189.81047348453}
williamsRArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), -62.028601694915174, -50.8262711864406, -63.51165254237281, -18.815668202764943, -71.73732718894013, -72.516129032258, -75.26267281105994, -77.65315315315323, -81.81224489795925, -79.77551020408164, -84.0408163265306, -79.94285714285708, -84.34693877551021, -70.05357142857146, -79.28766443286179, -76.03003226607102, -68.17610062893081, -76.11949685534587, -70.44654088050305, -67.98113207547179, -71.32362501625286, -74.59368092575744, -36.68463315366845, -59.77816695855236, -58.262136565335446, -63.50089409894708, -66.37525663951254, -65.16987879992047, -56.7719716537519, -28.88235294117647, -39.8352941176471, -47.42941176470584, -53.230847738725494, -52.899151623397266, -61.02570644893795, -52.97569688078073, -67.6915226127448, -97.95241436499317, -64.21414711589344, -73.76227844918924, -70.72521752641393, -68.76236363280253, -69.94731378655226, -71.33791644632467, -63.99710127896272, -67.75467817800495, -68.550594474382, -66.07070490357341, -47.48374512353701}
stochRsiArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 1.5437733514379761, 5.100519886880594, 6.312321578998301, 39.64565491233163, 36.088908376889016, 36.37768492760049, 13.36802339220264, 19.127536346364476, 28.014254359247882, 32.45357744233544, 38.129460936740635, 35.05102077537824, 53.621359227688544, 53.22215471044271, 54.42204483522622, 27.83735979428815, 19.16098052449159, 13.037637595022732, 21.340216335272512, 52.31373700708121, 72.87166805458196, 76.5480163125787, 60.652393534420355, 53.871944782973, 46.26089672615063, 46.843062254144456, 29.136403316988225, 18.01987608316882, -0.0000000000000023684757858670005, -0.0000000000000023684757858670005, 1.018521410691425, 4.121156385086379, 6.955308313768344, 8.433354702040864, 21.304579955514313, 39.42412442215086, 62.23426825382364, 70.50116653209518, 80.6417601987077}
mfiArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 39.309091039642745, 44.83682830047068, 35.68352202543356, 41.32389548759007, 38.918736695703736, 40.77193909322262, 47.489480503598344, 47.42001532218484, 40.91762121668236, 47.461625934945204, 35.98220436961509, 28.36564484572419, 30.8504090985425, 18.598432903959363, 19.4606933191007, 18.907945603398133, 28.760316191638452, 30.070393855066925, 39.559441553924735, 34.29976674526034, 38.0902900465148, 48.20793997727232, 59.93367405394973, 63.66736191460096, 68.11721468964325, 67.30578349612645, 60.73897570654667, 68.35728507836981, 56.93737410761491, 62.84548849189854, 58.65108569967536, 50.763654751939924, 39.30946559462673, 27.60016234782067, 29.795657650182406, 42.52779384660568, 40.48698285424263, 33.423575543275675, 27.802872921743713, 11.97375104041835, 12.786657064425967, 18.075886989976667, 17.892100067597056, 14.582798956752498, 24.943524590374565, 15.832672691780388, 15.568463146565193, 16.71953974963479, 25.40064399607884}
// 和TradingView值有细微差异
rmiArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 51.00213117501981, 47.057018502107496, 45.89897494659769, 33.69745402639319, 32.3914789494132, 29.15650910588259, 26.92789732026317, 24.736791004690446, 25.655459097436804, 24.831897947615644, 30.981782686424708, 25.058185896022394, 21.497961379882753, 17.847864190598898, 18.80470359053065, 20.674456972580572, 20.749648266993844, 22.369046261419072, 21.73335708461846, 31.61775531098013, 30.426840423475355, 29.923428848249856, 23.529889852034373, 22.528148422548796, 21.58086470781967, 24.99448085265962, 43.76793831530941, 53.02441812743141, 56.85202889143902, 50.3543296268567, 47.67360855459883, 45.03920881213004, 45.12881080462167, 40.83989468504275, 32.32013848022912, 15.209117602533254, 9.168859902043039, 6.701066546433424, 6.38561548306302, 7.205742433901634, 7.163977600538587, 10.363264084929042, 11.052000862390713, 11.164531009891093, 10.33854940104706, 10.18339542952583}
wmaArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 30358.321818181816, 30385.374545454546, 30368.249090909096, 30550.610909090912, 30518.85090909091, 30492.432727272728, 30459.032727272726, 30402.916363636363, 30299.469090909086, 30212.79818181818, 30111.714545454546, 30039.90181818182, 29961.507272727275, 29945.99272727273, 29790.494545454545, 29665.07818181818, 29580.7, 29489.372727272726, 29431.107272727277, 29389.890909090915, 29346.427272727273, 29303.27090909091, 29359.652727272725, 29320.967272727274, 29300.494545454545, 29265.34181818182, 29224.392727272723, 29191.812727272725, 29184.72, 29280.54, 29334.87090909091, 29360.24363636364, 29376.436363636363, 29398.769090909092, 29393.381818181824, 29408.883636363636, 29376.65090909091, 29255.78, 28758.80909090909, 28205.783636363638, 27728.738181818182, 27330.974545454545, 26981.625454545454, 26679.36909090909, 26506.645454545458, 26339.887272727272, 26211.78181818182, 26132.096363636363, 26116.84909090909}
hmaArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 30380.894747474744, 30701.26242424242, 30802.253838383836, 30734.349292929295, 30528.133131313134, 30317.58545454546, 30055.430101010108, 29874.571818181823, 29751.15848484848, 29716.415656565656, 29704.448888888888, 29789.39090909091, 29681.428383838385, 29488.857272727273, 29305.688181818183, 29176.46282828283, 29117.19212121212, 29147.850000000002, 29199.831515151513, 29227.731414141414, 29348.88323232323, 29379.606969696964, 29344.414848484845, 29248.643030303025, 29147.985050505053, 29057.114646464644, 29045.87919191919, 29218.172323232324, 29422.16232323232, 29556.813434343432, 29594.284343434338, 29567.416060606058, 29471.24222222222, 29400.984949494945, 29315.314141414143, 29125.170202020206, 28389.431414141418, 27336.461818181822, 26339.541515151515, 25692.440505050505, 25407.637171717175, 25423.757878787877, 25673.930000000004, 25918.366363636364, 26058.047979797982, 26086.97222222222, 26077.048585858585}
ctiArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), -0.5854217302983798, -0.4473418834262888, -0.4091964997721292, 0.3980489320179337, 0.47934085448910846, 0.4517731139379827, 0.1308607310898215, -0.060831469829682946, -0.34511584999891404, -0.6057657981110012, -0.7353566095960815, -0.7356731364973172, -0.7950563477682662, -0.7333253674025249, -0.7409386182669917, -0.7728710970973076, -0.7640252439672055, -0.7633173652409699, -0.7769122616475692, -0.7232871713245818, -0.6887771522080668, -0.5989049748321204, -0.16453824756703309, 0.36284717183682835, 0.07870758917221098, -0.21420673410065175, -0.3469239555521539, -0.5380519526333389, -0.5120071818755191, 0.053026681132312445, 0.2322860493879685, 0.25410211527264603, 0.6673323727790275, 0.6489852215317294, 0.5169367083964158, 0.3986501832218441, -0.025720583260534672, -0.6341650987565272, -0.7197311790385816, -0.7945217453392571, -0.8635805865227658, -0.903716899372526, -0.9142412168094851, -0.8955176153699675, -0.8178883689078782, -0.7146666052398399, -0.5685225321806398, -0.4105952843623358, -0.04274264195522854}
linRegArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 30223.270909090912, 30281.75393939394, 30274.301212121216, 30660.785454545454, 30648.385454545452, 30615.009696969697, 30491.42303030303, 30387.391515151514, 30202.507878787874, 30033.915757575753, 29878.840606060607, 29806.877575757575, 29702.010303030303, 29848.596363636367, 29636.367272727275, 29485.075757575756, 29405.633333333335, 29314.723030303034, 29251.530303030308, 29229.545454545463, 29197.45030303031, 29186.16545454546, 29328.696363636365, 29358.52363636364, 29308.567272727276, 29241.904242424243, 29183.46303030303, 29125.283030303035, 29121.693333333333, 29289.286666666667, 29375.832121212126, 29405.31515151515, 29481.191515151517, 29499.88787878788, 29472.23757575758, 29465.955151515154, 29373.265454545457, 29139.433333333334, 28325.56787878788, 27530.76181818182, 26882.25575757576, 26389.84727272727, 26014.71272727273, 25759.621212121212, 25739.81272727273, 25784.696969696968, 25904.064242424243, 26079.47818181818, 26113.50121212121}
cmoArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 1.1819849195028427, -7.205255288514691, 24.1056727301239, -7.89149333057461, -8.278166130228318, -9.76255509465789, -12.16611848682034, -19.531228391445442, -17.58235122439965, -20.594837379913653, -16.0660196414917, -19.668385711748666, -6.1853881683471235, -32.759866218363086, -30.38450454257261, -24.730851363025646, -28.372114015615978, -23.626343805951652, -21.458142175951934, -24.026360321695755, -26.014709644756312, 1.376078276482574, -19.98741922067391, -19.45550012525893, -22.447212791247306, -24.164439476224857, -22.89647006751826, -13.892923012036942, 16.077859343185043, 5.730495604501045, -1.0637292839010566, -2.583067482625428, -2.261314916434957, -9.950025393672597, -1.1887623954315103, -14.953653363986968, -35.487305299350204, -70.54460259563967, -74.66928385406868, -72.4848766078067, -68.05702198469069, -68.67412030729587, -69.44384969101161, -48.099320490911104, -52.60546717205905, -54.54975922923524, -55.403210521935, -49.900326856048665}
cmo1Arr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 1.1819849195028482, -7.752973351141611, 7.951427562413424, -10.431411441193685, -5.064742701514641, 9.428870408106993, -6.173897081319297, -12.13866208279617, -7.379566527245573, -18.504718565800353, -22.666919575113777, -19.309935347671207, -61.03468233827514, -56.34259490198022, -51.958045385482464, -41.93486954865726, -42.90262172284627, -28.046461427763575, -28.754521963824363, -27.3847774558863, -36.28002596840527, -3.705704894412146, -36.544001298332475, 1.04605179232054, -7.225288509784267, -18.33212568341999, -9.489361702127583, -6.719203649937826, 21.383103325355222, 14.491570200297804, 10.316101263479474, -16.722270997951426, 21.190596989683893, 8.70066928225236, 23.63771343726811, 8.544613178648133, -18.161266013564433, -65.34119544400764, -93.39648717239986, -90.74927728728797, -86.03549049549767, -86.1532437018664, -86.65400508174406, -69.3607162680695, -76.18969593408386, -75.51452711648163, -72.70946797950252, -30.597889800703268}
chopArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 61.762663460806245, 62.556530006639996, 60.57071178343231, 65.46422399765962, 63.00386781193594, 56.11233760269264, 54.770265505215576, 53.04140342482394, 53.20884825061791, 52.367746672874446, 51.32991551647772, 49.03770544416102, 46.996001136625495, 57.86702097637876, 59.17453747113767, 61.091448481067225, 59.68528740580169, 56.79506569084427, 54.72947021680026, 51.985852971399574, 52.62508692668655, 51.6223544773209, 62.309231575966216, 57.659892125361665, 59.13882559783471, 56.06637107637532, 53.85642125742004, 55.24310368266953, 57.195532549867025, 59.5353551654483, 59.537300943785844, 57.23529419168063, 48.71168083816598, 46.12568702253044, 46.818353350746555, 49.176632146088785, 52.042290022997825, 19.092192495575237, 20.360202533443527, 22.267121345000636, 22.177218822666443, 22.860419515520242, 26.419847244548027, 29.97223470483569, 32.154458825470826, 34.71550934414749, 37.76647378166404, 59.350499739630536}
almaArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 30735.774619377815, 30705.76824710252, 30567.93084475878, 30331.90976968406, 30217.244644213344, 30206.33120179994, 30306.88357344413, 30363.469334681795, 30474.481642137376, 30610.3678921153, 30664.251805946216, 30601.40921873226, 30476.751236471904, 30193.11220130623, 30105.08926039304, 29999.72164104124, 29907.308649943916, 29849.197005520353, 29838.415535400414, 29797.027979620947, 29714.73555138733, 29554.958522643326, 29393.982282478555, 29245.22616123378, 29272.274786014666, 29287.296987831294, 29290.199524849086, 29316.845646220037, 29332.946196062618, 29337.50725080807, 29316.14564900672, 29255.935805702247, 29133.467763600478, 29128.789503341046, 29165.271478950875, 29269.777037483702, 29407.138096711526, 29510.038891054694, 29530.164710366033, 29443.55409307841, 29389.713834947055, 29332.215614766046, 29199.631985411273, 28892.163215816312, 28336.95519972478, 27536.782079648376, 26744.720834348478, 26196.874157492628, 26111.295005989017}
stiffnessArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 7.142857142857143, 7.142857142857143, 7.142857142857143, 7.142857142857143, 10.714285714285715, 16.071428571428573, 22.321428571428573, 29.017857142857146, 35.9375, 42.96875, 50.05580357142858, 50.02790178571429, 50.01395089285715, 50.006975446428584, 50.00348772321429, 50.00174386160715, 50.000871930803584, 50.00043596540179, 46.42878941127233, 41.07153756277902, 34.8214830671038, 28.125027247837615, 21.20537076677595, 14.174113954816548}
dv2Arr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 50, 100, 93.33333333333333, 13.333333333333334, 76.66666666666667, 76.66666666666667, 60, 93.33333333333333, 96.66666666666667, 33.333333333333336, 16.666666666666668, 43.333333333333336, 70, 36.666666666666664, 53.333333333333336, 43.333333333333336, 3.3333333333333335, 6.666666666666667, 20, 36.666666666666664, 86.66666666666667, 86.66666666666667, 100, 100, 73.33333333333333, 50, 46.666666666666664, 43.333333333333336}
UTBotArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
stcArr := []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), 0, 0, 50, 75, 87.5, 93.75, 96.875, 53.315953688832515, 60.892293944128326, 30.446146972064163, 15.223073486032082, 7.611536743016041, 3.8057683715080204, 1.9028841857540102, 50.95144209287701, 75.47572104643851, 87.73786052321925, 93.86893026160962, 96.93446513080481, 48.467232565402405, 24.233616282701202, 13.694685116631517, 56.84734255831576, 78.42367127915787, 89.21183563957894, 94.60591781978947, 92.71405758734181, 96.3570287936709, 48.17851439683545, 24.089257198417727, 12.044628599208863, 6.022314299604432, 53.011157149802216, 76.50557857490111, 88.25278928745055, 94.12639464372528, 52.69324668529326, 26.34662334264663, 13.173311671323315, 6.586655835661658, 35.19523085928331, 29.536743561548136, 14.768371780774068, 7.384185890387034, 3.692092945193517, 51.846046472596754, 75.92302323629838, 87.96151161814919, 93.9807558090746, 96.9903779045373, 98.49518895226865, 99.24759447613432, 99.62379723806717, 99.81189861903358}
crossArr := []float64{0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, -1, -2, -3, -4, -5, -6, -7, 1, -1, -2, -3, -4, -5, 1, 2, -1, 1, 2, 3, -1, -2, -3, -4, 1, 2, 3, 4, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, 1, 2, 3, -1, -2}
return []CaseItem{
{"sum", sumArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.Sum(c, 9)
}, func(env *BarEnv) float64 {
return Sum(env.Close, 9).Get(0)
}},
{"sma", smaArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.SMA(c, 9)
}, func(env *BarEnv) float64 {
return SMA(env.Close, 9).Get(0)
}},
{"vwma", vwmaArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.VWMA(tav.HLC3(h, l, c), v, 9)
}, func(env *BarEnv) float64 {
mid := AvgPrice(env)
return VWMA(mid, env.Volume, 9).Get(0)
}},
{"ema", emaArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.EMA(c, 12)
}, func(env *BarEnv) float64 {
return EMA(env.Close, 12).Get(0)
}},
{"ema2", ema2Arr, func(o, h, l, c, v, i []float64) []float64 {
return tav.EMABy(c, 12, 1)
}, func(env *BarEnv) float64 {
return EMABy(env.Close, 12, 1).Get(0)
}},
{"rma", rmaArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.RMA(c, 12)
}, func(env *BarEnv) float64 {
return RMA(env.Close, 12).Get(0)
}},
{"rma2", ram2Arr, func(o, h, l, c, v, i []float64) []float64 {
return tav.RMABy(c, 12, 1, math.NaN())
}, func(env *BarEnv) float64 {
return RMABy(env.Close, 12, 1, math.NaN()).Get(0)
}},
{"tr", trArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.TR(h, l, c)
}, func(env *BarEnv) float64 {
return TR(env.High, env.Low, env.Close).Get(0)
}},
{"atr", atrArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.ATR(h, l, c, 14)
}, func(env *BarEnv) float64 {
return ATR(env.High, env.Low, env.Close, 14).Get(0)
}},
{"macd", macdArr, func(o, h, l, c, v, i []float64) []float64 {
macd, _ := tav.MACD(c, 12, 26, 9)
return macd
}, func(env *BarEnv) float64 {
macd, _ := MACD(env.Close, 12, 26, 9)
return macd.Get(0)
}},
{"rsi", rsiArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.RSI(c, 14)
}, func(env *BarEnv) float64 {
return RSI(env.Close, 14).Get(0)
}},
{"upDn", upDnArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.UpDown(c, 0)
}, func(env *BarEnv) float64 {
return UpDown(env.Close, 0).Get(0)
}},
{"crsi", crsi0Arr, func(o, h, l, c, v, i []float64) []float64 {
return tav.CRSIBy(c, 3, 2, 20, 0)
}, func(env *BarEnv) float64 {
return CRSIBy(env.Close, 3, 2, 20, 0).Get(0)
}},
{"crsi1", crsi1Arr, func(o, h, l, c, v, i []float64) []float64 {
return tav.CRSIBy(c, 3, 2, 20, 1)
}, func(env *BarEnv) float64 {
return CRSIBy(env.Close, 3, 2, 20, 1).Get(0)
}},
{"percentRank", perRkArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.PercentRank(c, 20)
}, func(env *BarEnv) float64 {
return PercentRank(env.Close, 20).Get(0)
}},
{"kdj", kdjKArr, func(o, h, l, c, v, i []float64) []float64 {
k, _, _ := tav.KDJBy(h, l, c, 9, 3, 3, "rma")
return k
}, func(env *BarEnv) float64 {
k, _, _ := KDJ(env.High, env.Low, env.Close, 9, 3, 3)
return k.Get(0)
}},
{"stoch", stochArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.Stoch(h, l, c, 5)
}, func(env *BarEnv) float64 {
return Stoch(env.High, env.Low, env.Close, 5).Get(0)
}},
{"kdj_sma", smaKdjKArr, func(o, h, l, c, v, i []float64) []float64 {
k, _, _ := tav.KDJBy(h, l, c, 9, 3, 3, "sma")
return k
}, func(env *BarEnv) float64 {
k, _, _ := KDJBy(env.High, env.Low, env.Close, 9, 3, 3, "sma")
return k.Get(0)
}},
{"highest", highestArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.Highest(c, 9)
}, func(env *BarEnv) float64 {
return Highest(env.Close, 9).Get(0)
}},
{"lowest", lowestArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.Lowest(c, 9)
}, func(env *BarEnv) float64 {
return Lowest(env.Close, 9).Get(0)
}},
{"highBar", highBarArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.HighestBar(c, 9)
}, func(env *BarEnv) float64 {
return HighestBar(env.Close, 9).Get(0)
}},
{"aroonUp", aroonUpArr, func(o, h, l, c, v, i []float64) []float64 {
aroon, _, _ := tav.Aroon(h, l, 9)
return aroon
}, func(env *BarEnv) float64 {
aroon, _, _ := Aroon(env.High, env.Low, 9)
return aroon.Get(0)
}},
{"aroonDn", aroonDnArr, func(o, h, l, c, v, i []float64) []float64 {
_, _, aroonDn := tav.Aroon(h, l, 9)
return aroonDn
}, func(env *BarEnv) float64 {
_, _, aroonDn := Aroon(env.High, env.Low, 9)
return aroonDn.Get(0)
}},
{"aroonOsc", aroonOscArr, func(o, h, l, c, v, i []float64) []float64 {
_, aroon, _ := tav.Aroon(h, l, 9)
return aroon
}, func(env *BarEnv) float64 {
_, aroon, _ := Aroon(env.High, env.Low, 9)
return aroon.Get(0)
}},
{"stdDev", stdDevArr, func(o, h, l, c, v, i []float64) []float64 {
stdDev := tav.StdDev(c, 5)
return stdDev
}, func(env *BarEnv) float64 {
stdDev := StdDev(env.Close, 5)
return stdDev.Get(0)
}},
{"BBands", bbandArr, func(o, h, l, c, v, i []float64) []float64 {
bbands, _, _ := tav.BBANDS(c, 7, 2, 2)
return bbands
}, func(env *BarEnv) float64 {
bbands, _, _ := BBANDS(env.Close, 7, 2, 2)
return bbands.Get(0)
}},
{"TD", tdArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.TD(c)
}, func(env *BarEnv) float64 {
return TD(env.Close).Get(0)
}},
{"ADX", adxArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.ADX(h, l, c, 9)
}, func(env *BarEnv) float64 {
return ADX(env.High, env.Low, env.Close, 9).Get(0)
}},
{"MinusDI", minusDiArr, func(o, h, l, c, v, i []float64) []float64 {
_, di := tav.PluMinDI(h, l, c, 9)
return di
}, func(env *BarEnv) float64 {
_, minusDi := PluMinDI(env.High, env.Low, env.Close, 9)
return minusDi.Get(0)
}},
{"PluMinDM", pluMinDmArr, func(o, h, l, c, v, i []float64) []float64 {
dm, _ := tav.PluMinDM(h, l, c, 9)
return dm
}, func(env *BarEnv) float64 {
plusDm, _ := PluMinDM(env.High, env.Low, env.Close, 9)
return plusDm.Get(0)
}},
{"ADXBy", adxByArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.ADXBy(h, l, c, 9, 0, 1)
}, func(env *BarEnv) float64 {
return ADXBy(env.High, env.Low, env.Close, 9, 0, 1).Get(0)
}},
{"ROC", rocArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.ROC(c, 9)
}, func(env *BarEnv) float64 {
return ROC(env.Close, 9).Get(0)
}},
{"HeikinAshi", heiKenArr, func(o, h, l, c, v, i []float64) []float64 {
hkOpen, _, _, _ := tav.HeikinAshi(o, h, l, c)
return hkOpen
}, func(env *BarEnv) float64 {
hkOpen, _, _, _ := HeikinAshi(env)
return hkOpen.Get(0)
}},
{"ER", tnrArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.ER(c, 10)
}, func(env *BarEnv) float64 {
return ER(env.Close, 10).Get(0)
}},
{"CCI", cciArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.CCI(tav.HLC3(h, l, c), 10)
}, func(env *BarEnv) float64 {
hlc3 := AvgPrice(env)
return CCI(hlc3, 10).Get(0)
}},
{"CMF", cmfArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.CMF(h, l, c, v, 10)
}, func(env *BarEnv) float64 {
return CMF(env, 10).Get(0)
}},
{"KAMA", kamaArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.KAMA(c, 10)
}, func(env *BarEnv) float64 {
return KAMA(env.Close, 10).Get(0)
}},
{"WillR", williamsRArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.WillR(h, l, c, 10)
}, func(env *BarEnv) float64 {
return WillR(env, 10).Get(0)
}},
{"StochRSI", stochRsiArr, func(o, h, l, c, v, i []float64) []float64 {
srsi, _ := tav.StochRSI(c, 9, 9, 3, 3)
return srsi
}, func(env *BarEnv) float64 {
srsi, _ := StochRSI(env.Close, 9, 9, 3, 3)
return srsi.Get(0)
}},
{"MFI", mfiArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.MFI(h, l, c, v, 10)
}, func(env *BarEnv) float64 {
return MFI(env, 10).Get(0)
}},
{"RMI", rmiArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.RMI(c, 10, 3)
}, func(env *BarEnv) float64 {
return RMI(env.Close, 10, 3).Get(0)
}},
{"WMA", wmaArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.WMA(c, 10)
}, func(env *BarEnv) float64 {
return WMA(env.Close, 10).Get(0)
}},
{"HMA", hmaArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.HMA(c, 10)
}, func(env *BarEnv) float64 {
return HMA(env.Close, 10).Get(0)
}},
{"CTI", ctiArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.CTI(c, 10)
}, func(env *BarEnv) float64 {
return CTI(env.Close, 10).Get(0)
}},
{"LinReg", linRegArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.LinReg(c, 10)
}, func(env *BarEnv) float64 {
return LinReg(env.Close, 10).Get(0)
}},
{"CMO", cmoArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.CMO(c, 10)
}, func(env *BarEnv) float64 {
return CMO(env.Close, 10).Get(0)
}},
{"CMO1", cmo1Arr, func(o, h, l, c, v, i []float64) []float64 {
return tav.CMOBy(c, 10, 1)
}, func(env *BarEnv) float64 {
return CMOBy(env.Close, 10, 1).Get(0)
}},
{"CHOP", chopArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.CHOP(h, l, c, 10)
}, func(env *BarEnv) float64 {
return CHOP(env, 10).Get(0)
}},
{"ALMA", almaArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.ALMA(c, 10, 6, 0.85)
}, func(env *BarEnv) float64 {
return ALMA(env.Close, 10, 6, 0.85).Get(0)
}},
{"Stiffness", stiffnessArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.Stiffness(c, 20, 14, 3)
}, func(env *BarEnv) float64 {
return Stiffness(env.Close, 20, 14, 3).Get(0)
}},
{"DV2", dv2Arr, func(o, h, l, c, v, i []float64) []float64 {
return tav.DV2(h, l, c, 30, 2)
}, func(env *BarEnv) float64 {
return DV2(env.High, env.Low, env.Close, 30, 2).Get(0)
}},
{"UTBot", UTBotArr, func(o, h, l, c, v, i []float64) []float64 {
atr := tav.ATR(h, l, c, 10)
return tav.UTBot(c, atr, 1)
}, func(env *BarEnv) float64 {
atr := ATR(env.High, env.Low, env.Close, 10)
return UTBot(env.Close, atr, 1).Get(0)
}},
{"STC", stcArr, func(o, h, l, c, v, i []float64) []float64 {
return tav.STC(c, 4, 3, 5, 0.5)
}, func(env *BarEnv) float64 {
// EMA需要较长启动周期,前面有些许误差正常
return STC(env.Close, 4, 3, 5, 0.5).Get(0)
}},
{"Cross", crossArr, func(o, h, l, c, v, i []float64) []float64 {
ma1 := tav.SMA(c, 3)
ma2 := tav.SMA(c, 6)
xArr := tav.Cross(ma1, ma2)
flags := make([]float64, len(xArr))
for idx, val := range xArr {
flags[idx] = float64(val)
}
return flags
}, func(env *BarEnv) float64 {
ma1 := SMA(env.Close, 3)
ma2 := SMA(env.Close, 6)
xFlag := Cross(ma1, ma2)
return float64(xFlag)
}},
}
}
func TestCommon(t *testing.T) {
items := getTestCases()
runIndCases(t, items)
}
func TestIndicatorsWithInitialNaNs(t *testing.T) {
// 准备数据:在正常数据前插入3个NaN K线
nanKline := Kline{Time: 1688169600000 - 3*86400000, Open: math.NaN(), High: math.NaN(), Low: math.NaN(), Close: math.NaN(), Volume: math.NaN()}
dataWithInitialNaNs := make([]Kline, 0, len(DataKline)+3)
for i := 0; i < 3; i++ {
k := nanKline
k.Time += int64(i) * 86400000
dataWithInitialNaNs = append(dataWithInitialNaNs, k)
}
dataWithInitialNaNs = append(dataWithInitialNaNs, DataKline...)
t.Log("--- Testing with first 3 K-lines being NaN ---")
runAndCompareCases(t, dataWithInitialNaNs, getTestCases(), false)
}
func TestIndicatorsWithMiddleNaN(t *testing.T) {
// 准备数据:将数据重复一遍得到116根,并在中间插入一个NaN K线
dataWithMiddleNaN := make([]Kline, 0, len(DataKline)*2)
dataWithMiddleNaN = append(dataWithMiddleNaN, DataKline...)
// 复制并调整第二部分的时间戳
secondPart := make([]Kline, len(DataKline))
copy(secondPart, DataKline)
lastTime := DataKline[len(DataKline)-1].Time
for i := range secondPart {
secondPart[i].Time = lastTime + int64(i+1)*86400000
}
dataWithMiddleNaN = append(dataWithMiddleNaN, secondPart...)
nanIndex := 40
dataWithMiddleNaN[nanIndex] = Kline{
Time: dataWithMiddleNaN[nanIndex].Time,
Open: math.NaN(),
High: math.NaN(),
Low: math.NaN(),
Close: math.NaN(),
Volume: math.NaN(),
}
t.Log("--- Testing with a NaN K-line in the middle (bar #60) ---")
runAndCompareCases(t, dataWithMiddleNaN, getTestCases(), true)
}