OctoBot-Tulipy 0.4.11b12__cp314-cp314-macosx_10_15_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tulipy/__init__.py ADDED
@@ -0,0 +1,1486 @@
1
+
2
+
3
+ # tulipy: Python bindings for Tulip Indicators
4
+ # https://github.com/cirla/tulipy
5
+ # Copyright (c) 2016 tulipy authors
6
+ # https://github.com/cirla/tulipy/blob/master/AUTHORS
7
+ #
8
+ # This file is part of tulipy: Python bindings for Tulip Indicators.
9
+ #
10
+ # tulipy is free software: you can redistribute it and/or modify it
11
+ # under the terms of the GNU Lesser General Public License as published by the
12
+ # Free Software Foundation, either version 3 of the License, or (at your
13
+ # option) any later version.
14
+ #
15
+ # tulipy is distributed in the hope that it will be useful, but
16
+ # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
18
+ # for more details.
19
+ #
20
+ # You should have received a copy of the GNU Lesser General Public License
21
+ # along with tulipy. If not, see <http://www.gnu.org/licenses/>.
22
+
23
+
24
+ # This file is generated. Do not modify directly.
25
+
26
+ from . import lib
27
+ from .lib import TI_BUILD, InvalidOptionError
28
+
29
+ TI_VERSION = lib.TI_VERSION.decode()
30
+
31
+
32
+ def abs(real):
33
+ """
34
+ Vector Absolute Value
35
+ """
36
+
37
+ return lib.abs([real], [])
38
+
39
+ abs.full_name = lib.abs.full_name.decode()
40
+ abs.type = lib.abs.type.decode()
41
+ abs.inputs = [x.decode() for x in lib.abs.inputs]
42
+ abs.options = [x.decode() for x in lib.abs.options]
43
+ abs.outputs = [x.decode() for x in lib.abs.outputs]
44
+
45
+
46
+ def acos(real):
47
+ """
48
+ Vector Arccosine
49
+ """
50
+
51
+ return lib.acos([real], [])
52
+
53
+ acos.full_name = lib.acos.full_name.decode()
54
+ acos.type = lib.acos.type.decode()
55
+ acos.inputs = [x.decode() for x in lib.acos.inputs]
56
+ acos.options = [x.decode() for x in lib.acos.options]
57
+ acos.outputs = [x.decode() for x in lib.acos.outputs]
58
+
59
+
60
+ def ad(high, low, close, volume):
61
+ """
62
+ Accumulation/Distribution Line
63
+ """
64
+
65
+ return lib.ad([high, low, close, volume], [])
66
+
67
+ ad.full_name = lib.ad.full_name.decode()
68
+ ad.type = lib.ad.type.decode()
69
+ ad.inputs = [x.decode() for x in lib.ad.inputs]
70
+ ad.options = [x.decode() for x in lib.ad.options]
71
+ ad.outputs = [x.decode() for x in lib.ad.outputs]
72
+
73
+
74
+ def add(real, real2):
75
+ """
76
+ Vector Addition
77
+ """
78
+
79
+ return lib.add([real, real2], [])
80
+
81
+ add.full_name = lib.add.full_name.decode()
82
+ add.type = lib.add.type.decode()
83
+ add.inputs = [x.decode() for x in lib.add.inputs]
84
+ add.options = [x.decode() for x in lib.add.options]
85
+ add.outputs = [x.decode() for x in lib.add.outputs]
86
+
87
+
88
+ def adosc(high, low, close, volume, short_period, long_period):
89
+ """
90
+ Accumulation/Distribution Oscillator
91
+ """
92
+
93
+ return lib.adosc([high, low, close, volume], [short_period, long_period])
94
+
95
+ adosc.full_name = lib.adosc.full_name.decode()
96
+ adosc.type = lib.adosc.type.decode()
97
+ adosc.inputs = [x.decode() for x in lib.adosc.inputs]
98
+ adosc.options = [x.decode() for x in lib.adosc.options]
99
+ adosc.outputs = [x.decode() for x in lib.adosc.outputs]
100
+
101
+
102
+ def adx(high, low, close, period):
103
+ """
104
+ Average Directional Movement Index
105
+ """
106
+
107
+ return lib.adx([high, low, close], [period])
108
+
109
+ adx.full_name = lib.adx.full_name.decode()
110
+ adx.type = lib.adx.type.decode()
111
+ adx.inputs = [x.decode() for x in lib.adx.inputs]
112
+ adx.options = [x.decode() for x in lib.adx.options]
113
+ adx.outputs = [x.decode() for x in lib.adx.outputs]
114
+
115
+
116
+ def adxr(high, low, close, period):
117
+ """
118
+ Average Directional Movement Rating
119
+ """
120
+
121
+ return lib.adxr([high, low, close], [period])
122
+
123
+ adxr.full_name = lib.adxr.full_name.decode()
124
+ adxr.type = lib.adxr.type.decode()
125
+ adxr.inputs = [x.decode() for x in lib.adxr.inputs]
126
+ adxr.options = [x.decode() for x in lib.adxr.options]
127
+ adxr.outputs = [x.decode() for x in lib.adxr.outputs]
128
+
129
+
130
+ def ao(high, low):
131
+ """
132
+ Awesome Oscillator
133
+ """
134
+
135
+ return lib.ao([high, low], [])
136
+
137
+ ao.full_name = lib.ao.full_name.decode()
138
+ ao.type = lib.ao.type.decode()
139
+ ao.inputs = [x.decode() for x in lib.ao.inputs]
140
+ ao.options = [x.decode() for x in lib.ao.options]
141
+ ao.outputs = [x.decode() for x in lib.ao.outputs]
142
+
143
+
144
+ def apo(real, short_period, long_period):
145
+ """
146
+ Absolute Price Oscillator
147
+ """
148
+
149
+ return lib.apo([real], [short_period, long_period])
150
+
151
+ apo.full_name = lib.apo.full_name.decode()
152
+ apo.type = lib.apo.type.decode()
153
+ apo.inputs = [x.decode() for x in lib.apo.inputs]
154
+ apo.options = [x.decode() for x in lib.apo.options]
155
+ apo.outputs = [x.decode() for x in lib.apo.outputs]
156
+
157
+
158
+ def aroon(high, low, period):
159
+ """
160
+ Aroon
161
+ """
162
+
163
+ return lib.aroon([high, low], [period])
164
+
165
+ aroon.full_name = lib.aroon.full_name.decode()
166
+ aroon.type = lib.aroon.type.decode()
167
+ aroon.inputs = [x.decode() for x in lib.aroon.inputs]
168
+ aroon.options = [x.decode() for x in lib.aroon.options]
169
+ aroon.outputs = [x.decode() for x in lib.aroon.outputs]
170
+
171
+
172
+ def aroonosc(high, low, period):
173
+ """
174
+ Aroon Oscillator
175
+ """
176
+
177
+ return lib.aroonosc([high, low], [period])
178
+
179
+ aroonosc.full_name = lib.aroonosc.full_name.decode()
180
+ aroonosc.type = lib.aroonosc.type.decode()
181
+ aroonosc.inputs = [x.decode() for x in lib.aroonosc.inputs]
182
+ aroonosc.options = [x.decode() for x in lib.aroonosc.options]
183
+ aroonosc.outputs = [x.decode() for x in lib.aroonosc.outputs]
184
+
185
+
186
+ def asin(real):
187
+ """
188
+ Vector Arcsine
189
+ """
190
+
191
+ return lib.asin([real], [])
192
+
193
+ asin.full_name = lib.asin.full_name.decode()
194
+ asin.type = lib.asin.type.decode()
195
+ asin.inputs = [x.decode() for x in lib.asin.inputs]
196
+ asin.options = [x.decode() for x in lib.asin.options]
197
+ asin.outputs = [x.decode() for x in lib.asin.outputs]
198
+
199
+
200
+ def atan(real):
201
+ """
202
+ Vector Arctangent
203
+ """
204
+
205
+ return lib.atan([real], [])
206
+
207
+ atan.full_name = lib.atan.full_name.decode()
208
+ atan.type = lib.atan.type.decode()
209
+ atan.inputs = [x.decode() for x in lib.atan.inputs]
210
+ atan.options = [x.decode() for x in lib.atan.options]
211
+ atan.outputs = [x.decode() for x in lib.atan.outputs]
212
+
213
+
214
+ def atr(high, low, close, period):
215
+ """
216
+ Average True Range
217
+ """
218
+
219
+ return lib.atr([high, low, close], [period])
220
+
221
+ atr.full_name = lib.atr.full_name.decode()
222
+ atr.type = lib.atr.type.decode()
223
+ atr.inputs = [x.decode() for x in lib.atr.inputs]
224
+ atr.options = [x.decode() for x in lib.atr.options]
225
+ atr.outputs = [x.decode() for x in lib.atr.outputs]
226
+
227
+
228
+ def avgprice(open, high, low, close):
229
+ """
230
+ Average Price
231
+ """
232
+
233
+ return lib.avgprice([open, high, low, close], [])
234
+
235
+ avgprice.full_name = lib.avgprice.full_name.decode()
236
+ avgprice.type = lib.avgprice.type.decode()
237
+ avgprice.inputs = [x.decode() for x in lib.avgprice.inputs]
238
+ avgprice.options = [x.decode() for x in lib.avgprice.options]
239
+ avgprice.outputs = [x.decode() for x in lib.avgprice.outputs]
240
+
241
+
242
+ def bbands(real, period, stddev):
243
+ """
244
+ Bollinger Bands
245
+ """
246
+
247
+ return lib.bbands([real], [period, stddev])
248
+
249
+ bbands.full_name = lib.bbands.full_name.decode()
250
+ bbands.type = lib.bbands.type.decode()
251
+ bbands.inputs = [x.decode() for x in lib.bbands.inputs]
252
+ bbands.options = [x.decode() for x in lib.bbands.options]
253
+ bbands.outputs = [x.decode() for x in lib.bbands.outputs]
254
+
255
+
256
+ def bop(open, high, low, close):
257
+ """
258
+ Balance of Power
259
+ """
260
+
261
+ return lib.bop([open, high, low, close], [])
262
+
263
+ bop.full_name = lib.bop.full_name.decode()
264
+ bop.type = lib.bop.type.decode()
265
+ bop.inputs = [x.decode() for x in lib.bop.inputs]
266
+ bop.options = [x.decode() for x in lib.bop.options]
267
+ bop.outputs = [x.decode() for x in lib.bop.outputs]
268
+
269
+
270
+ def cci(high, low, close, period):
271
+ """
272
+ Commodity Channel Index
273
+ """
274
+
275
+ return lib.cci([high, low, close], [period])
276
+
277
+ cci.full_name = lib.cci.full_name.decode()
278
+ cci.type = lib.cci.type.decode()
279
+ cci.inputs = [x.decode() for x in lib.cci.inputs]
280
+ cci.options = [x.decode() for x in lib.cci.options]
281
+ cci.outputs = [x.decode() for x in lib.cci.outputs]
282
+
283
+
284
+ def ceil(real):
285
+ """
286
+ Vector Ceiling
287
+ """
288
+
289
+ return lib.ceil([real], [])
290
+
291
+ ceil.full_name = lib.ceil.full_name.decode()
292
+ ceil.type = lib.ceil.type.decode()
293
+ ceil.inputs = [x.decode() for x in lib.ceil.inputs]
294
+ ceil.options = [x.decode() for x in lib.ceil.options]
295
+ ceil.outputs = [x.decode() for x in lib.ceil.outputs]
296
+
297
+
298
+ def cmo(real, period):
299
+ """
300
+ Chande Momentum Oscillator
301
+ """
302
+
303
+ return lib.cmo([real], [period])
304
+
305
+ cmo.full_name = lib.cmo.full_name.decode()
306
+ cmo.type = lib.cmo.type.decode()
307
+ cmo.inputs = [x.decode() for x in lib.cmo.inputs]
308
+ cmo.options = [x.decode() for x in lib.cmo.options]
309
+ cmo.outputs = [x.decode() for x in lib.cmo.outputs]
310
+
311
+
312
+ def cos(real):
313
+ """
314
+ Vector Cosine
315
+ """
316
+
317
+ return lib.cos([real], [])
318
+
319
+ cos.full_name = lib.cos.full_name.decode()
320
+ cos.type = lib.cos.type.decode()
321
+ cos.inputs = [x.decode() for x in lib.cos.inputs]
322
+ cos.options = [x.decode() for x in lib.cos.options]
323
+ cos.outputs = [x.decode() for x in lib.cos.outputs]
324
+
325
+
326
+ def cosh(real):
327
+ """
328
+ Vector Hyperbolic Cosine
329
+ """
330
+
331
+ return lib.cosh([real], [])
332
+
333
+ cosh.full_name = lib.cosh.full_name.decode()
334
+ cosh.type = lib.cosh.type.decode()
335
+ cosh.inputs = [x.decode() for x in lib.cosh.inputs]
336
+ cosh.options = [x.decode() for x in lib.cosh.options]
337
+ cosh.outputs = [x.decode() for x in lib.cosh.outputs]
338
+
339
+
340
+ def crossany(real, real2):
341
+ """
342
+ Crossany
343
+ """
344
+
345
+ return lib.crossany([real, real2], [])
346
+
347
+ crossany.full_name = lib.crossany.full_name.decode()
348
+ crossany.type = lib.crossany.type.decode()
349
+ crossany.inputs = [x.decode() for x in lib.crossany.inputs]
350
+ crossany.options = [x.decode() for x in lib.crossany.options]
351
+ crossany.outputs = [x.decode() for x in lib.crossany.outputs]
352
+
353
+
354
+ def crossover(real, real2):
355
+ """
356
+ Crossover
357
+ """
358
+
359
+ return lib.crossover([real, real2], [])
360
+
361
+ crossover.full_name = lib.crossover.full_name.decode()
362
+ crossover.type = lib.crossover.type.decode()
363
+ crossover.inputs = [x.decode() for x in lib.crossover.inputs]
364
+ crossover.options = [x.decode() for x in lib.crossover.options]
365
+ crossover.outputs = [x.decode() for x in lib.crossover.outputs]
366
+
367
+
368
+ def cvi(high, low, period):
369
+ """
370
+ Chaikins Volatility
371
+ """
372
+
373
+ return lib.cvi([high, low], [period])
374
+
375
+ cvi.full_name = lib.cvi.full_name.decode()
376
+ cvi.type = lib.cvi.type.decode()
377
+ cvi.inputs = [x.decode() for x in lib.cvi.inputs]
378
+ cvi.options = [x.decode() for x in lib.cvi.options]
379
+ cvi.outputs = [x.decode() for x in lib.cvi.outputs]
380
+
381
+
382
+ def decay(real, period):
383
+ """
384
+ Linear Decay
385
+ """
386
+
387
+ return lib.decay([real], [period])
388
+
389
+ decay.full_name = lib.decay.full_name.decode()
390
+ decay.type = lib.decay.type.decode()
391
+ decay.inputs = [x.decode() for x in lib.decay.inputs]
392
+ decay.options = [x.decode() for x in lib.decay.options]
393
+ decay.outputs = [x.decode() for x in lib.decay.outputs]
394
+
395
+
396
+ def dema(real, period):
397
+ """
398
+ Double Exponential Moving Average
399
+ """
400
+
401
+ return lib.dema([real], [period])
402
+
403
+ dema.full_name = lib.dema.full_name.decode()
404
+ dema.type = lib.dema.type.decode()
405
+ dema.inputs = [x.decode() for x in lib.dema.inputs]
406
+ dema.options = [x.decode() for x in lib.dema.options]
407
+ dema.outputs = [x.decode() for x in lib.dema.outputs]
408
+
409
+
410
+ def di(high, low, close, period):
411
+ """
412
+ Directional Indicator
413
+ """
414
+
415
+ return lib.di([high, low, close], [period])
416
+
417
+ di.full_name = lib.di.full_name.decode()
418
+ di.type = lib.di.type.decode()
419
+ di.inputs = [x.decode() for x in lib.di.inputs]
420
+ di.options = [x.decode() for x in lib.di.options]
421
+ di.outputs = [x.decode() for x in lib.di.outputs]
422
+
423
+
424
+ def div(real, real2):
425
+ """
426
+ Vector Division
427
+ """
428
+
429
+ return lib.div([real, real2], [])
430
+
431
+ div.full_name = lib.div.full_name.decode()
432
+ div.type = lib.div.type.decode()
433
+ div.inputs = [x.decode() for x in lib.div.inputs]
434
+ div.options = [x.decode() for x in lib.div.options]
435
+ div.outputs = [x.decode() for x in lib.div.outputs]
436
+
437
+
438
+ def dm(high, low, period):
439
+ """
440
+ Directional Movement
441
+ """
442
+
443
+ return lib.dm([high, low], [period])
444
+
445
+ dm.full_name = lib.dm.full_name.decode()
446
+ dm.type = lib.dm.type.decode()
447
+ dm.inputs = [x.decode() for x in lib.dm.inputs]
448
+ dm.options = [x.decode() for x in lib.dm.options]
449
+ dm.outputs = [x.decode() for x in lib.dm.outputs]
450
+
451
+
452
+ def dpo(real, period):
453
+ """
454
+ Detrended Price Oscillator
455
+ """
456
+
457
+ return lib.dpo([real], [period])
458
+
459
+ dpo.full_name = lib.dpo.full_name.decode()
460
+ dpo.type = lib.dpo.type.decode()
461
+ dpo.inputs = [x.decode() for x in lib.dpo.inputs]
462
+ dpo.options = [x.decode() for x in lib.dpo.options]
463
+ dpo.outputs = [x.decode() for x in lib.dpo.outputs]
464
+
465
+
466
+ def dx(high, low, close, period):
467
+ """
468
+ Directional Movement Index
469
+ """
470
+
471
+ return lib.dx([high, low, close], [period])
472
+
473
+ dx.full_name = lib.dx.full_name.decode()
474
+ dx.type = lib.dx.type.decode()
475
+ dx.inputs = [x.decode() for x in lib.dx.inputs]
476
+ dx.options = [x.decode() for x in lib.dx.options]
477
+ dx.outputs = [x.decode() for x in lib.dx.outputs]
478
+
479
+
480
+ def edecay(real, period):
481
+ """
482
+ Exponential Decay
483
+ """
484
+
485
+ return lib.edecay([real], [period])
486
+
487
+ edecay.full_name = lib.edecay.full_name.decode()
488
+ edecay.type = lib.edecay.type.decode()
489
+ edecay.inputs = [x.decode() for x in lib.edecay.inputs]
490
+ edecay.options = [x.decode() for x in lib.edecay.options]
491
+ edecay.outputs = [x.decode() for x in lib.edecay.outputs]
492
+
493
+
494
+ def ema(real, period):
495
+ """
496
+ Exponential Moving Average
497
+ """
498
+
499
+ return lib.ema([real], [period])
500
+
501
+ ema.full_name = lib.ema.full_name.decode()
502
+ ema.type = lib.ema.type.decode()
503
+ ema.inputs = [x.decode() for x in lib.ema.inputs]
504
+ ema.options = [x.decode() for x in lib.ema.options]
505
+ ema.outputs = [x.decode() for x in lib.ema.outputs]
506
+
507
+
508
+ def emv(high, low, volume):
509
+ """
510
+ Ease of Movement
511
+ """
512
+
513
+ return lib.emv([high, low, volume], [])
514
+
515
+ emv.full_name = lib.emv.full_name.decode()
516
+ emv.type = lib.emv.type.decode()
517
+ emv.inputs = [x.decode() for x in lib.emv.inputs]
518
+ emv.options = [x.decode() for x in lib.emv.options]
519
+ emv.outputs = [x.decode() for x in lib.emv.outputs]
520
+
521
+
522
+ def exp(real):
523
+ """
524
+ Vector Exponential
525
+ """
526
+
527
+ return lib.exp([real], [])
528
+
529
+ exp.full_name = lib.exp.full_name.decode()
530
+ exp.type = lib.exp.type.decode()
531
+ exp.inputs = [x.decode() for x in lib.exp.inputs]
532
+ exp.options = [x.decode() for x in lib.exp.options]
533
+ exp.outputs = [x.decode() for x in lib.exp.outputs]
534
+
535
+
536
+ def fisher(high, low, period):
537
+ """
538
+ Fisher Transform
539
+ """
540
+
541
+ return lib.fisher([high, low], [period])
542
+
543
+ fisher.full_name = lib.fisher.full_name.decode()
544
+ fisher.type = lib.fisher.type.decode()
545
+ fisher.inputs = [x.decode() for x in lib.fisher.inputs]
546
+ fisher.options = [x.decode() for x in lib.fisher.options]
547
+ fisher.outputs = [x.decode() for x in lib.fisher.outputs]
548
+
549
+
550
+ def floor(real):
551
+ """
552
+ Vector Floor
553
+ """
554
+
555
+ return lib.floor([real], [])
556
+
557
+ floor.full_name = lib.floor.full_name.decode()
558
+ floor.type = lib.floor.type.decode()
559
+ floor.inputs = [x.decode() for x in lib.floor.inputs]
560
+ floor.options = [x.decode() for x in lib.floor.options]
561
+ floor.outputs = [x.decode() for x in lib.floor.outputs]
562
+
563
+
564
+ def fosc(real, period):
565
+ """
566
+ Forecast Oscillator
567
+ """
568
+
569
+ return lib.fosc([real], [period])
570
+
571
+ fosc.full_name = lib.fosc.full_name.decode()
572
+ fosc.type = lib.fosc.type.decode()
573
+ fosc.inputs = [x.decode() for x in lib.fosc.inputs]
574
+ fosc.options = [x.decode() for x in lib.fosc.options]
575
+ fosc.outputs = [x.decode() for x in lib.fosc.outputs]
576
+
577
+
578
+ def hma(real, period):
579
+ """
580
+ Hull Moving Average
581
+ """
582
+
583
+ return lib.hma([real], [period])
584
+
585
+ hma.full_name = lib.hma.full_name.decode()
586
+ hma.type = lib.hma.type.decode()
587
+ hma.inputs = [x.decode() for x in lib.hma.inputs]
588
+ hma.options = [x.decode() for x in lib.hma.options]
589
+ hma.outputs = [x.decode() for x in lib.hma.outputs]
590
+
591
+
592
+ def kama(real, period):
593
+ """
594
+ Kaufman Adaptive Moving Average
595
+ """
596
+
597
+ return lib.kama([real], [period])
598
+
599
+ kama.full_name = lib.kama.full_name.decode()
600
+ kama.type = lib.kama.type.decode()
601
+ kama.inputs = [x.decode() for x in lib.kama.inputs]
602
+ kama.options = [x.decode() for x in lib.kama.options]
603
+ kama.outputs = [x.decode() for x in lib.kama.outputs]
604
+
605
+
606
+ def kvo(high, low, close, volume, short_period, long_period):
607
+ """
608
+ Klinger Volume Oscillator
609
+ """
610
+
611
+ return lib.kvo([high, low, close, volume], [short_period, long_period])
612
+
613
+ kvo.full_name = lib.kvo.full_name.decode()
614
+ kvo.type = lib.kvo.type.decode()
615
+ kvo.inputs = [x.decode() for x in lib.kvo.inputs]
616
+ kvo.options = [x.decode() for x in lib.kvo.options]
617
+ kvo.outputs = [x.decode() for x in lib.kvo.outputs]
618
+
619
+
620
+ def lag(real, period):
621
+ """
622
+ Lag
623
+ """
624
+
625
+ return lib.lag([real], [period])
626
+
627
+ lag.full_name = lib.lag.full_name.decode()
628
+ lag.type = lib.lag.type.decode()
629
+ lag.inputs = [x.decode() for x in lib.lag.inputs]
630
+ lag.options = [x.decode() for x in lib.lag.options]
631
+ lag.outputs = [x.decode() for x in lib.lag.outputs]
632
+
633
+
634
+ def linreg(real, period):
635
+ """
636
+ Linear Regression
637
+ """
638
+
639
+ return lib.linreg([real], [period])
640
+
641
+ linreg.full_name = lib.linreg.full_name.decode()
642
+ linreg.type = lib.linreg.type.decode()
643
+ linreg.inputs = [x.decode() for x in lib.linreg.inputs]
644
+ linreg.options = [x.decode() for x in lib.linreg.options]
645
+ linreg.outputs = [x.decode() for x in lib.linreg.outputs]
646
+
647
+
648
+ def linregintercept(real, period):
649
+ """
650
+ Linear Regression Intercept
651
+ """
652
+
653
+ return lib.linregintercept([real], [period])
654
+
655
+ linregintercept.full_name = lib.linregintercept.full_name.decode()
656
+ linregintercept.type = lib.linregintercept.type.decode()
657
+ linregintercept.inputs = [x.decode() for x in lib.linregintercept.inputs]
658
+ linregintercept.options = [x.decode() for x in lib.linregintercept.options]
659
+ linregintercept.outputs = [x.decode() for x in lib.linregintercept.outputs]
660
+
661
+
662
+ def linregslope(real, period):
663
+ """
664
+ Linear Regression Slope
665
+ """
666
+
667
+ return lib.linregslope([real], [period])
668
+
669
+ linregslope.full_name = lib.linregslope.full_name.decode()
670
+ linregslope.type = lib.linregslope.type.decode()
671
+ linregslope.inputs = [x.decode() for x in lib.linregslope.inputs]
672
+ linregslope.options = [x.decode() for x in lib.linregslope.options]
673
+ linregslope.outputs = [x.decode() for x in lib.linregslope.outputs]
674
+
675
+
676
+ def ln(real):
677
+ """
678
+ Vector Natural Log
679
+ """
680
+
681
+ return lib.ln([real], [])
682
+
683
+ ln.full_name = lib.ln.full_name.decode()
684
+ ln.type = lib.ln.type.decode()
685
+ ln.inputs = [x.decode() for x in lib.ln.inputs]
686
+ ln.options = [x.decode() for x in lib.ln.options]
687
+ ln.outputs = [x.decode() for x in lib.ln.outputs]
688
+
689
+
690
+ def log10(real):
691
+ """
692
+ Vector Base-10 Log
693
+ """
694
+
695
+ return lib.log10([real], [])
696
+
697
+ log10.full_name = lib.log10.full_name.decode()
698
+ log10.type = lib.log10.type.decode()
699
+ log10.inputs = [x.decode() for x in lib.log10.inputs]
700
+ log10.options = [x.decode() for x in lib.log10.options]
701
+ log10.outputs = [x.decode() for x in lib.log10.outputs]
702
+
703
+
704
+ def macd(real, short_period, long_period, signal_period):
705
+ """
706
+ Moving Average Convergence/Divergence
707
+ """
708
+
709
+ return lib.macd([real], [short_period, long_period, signal_period])
710
+
711
+ macd.full_name = lib.macd.full_name.decode()
712
+ macd.type = lib.macd.type.decode()
713
+ macd.inputs = [x.decode() for x in lib.macd.inputs]
714
+ macd.options = [x.decode() for x in lib.macd.options]
715
+ macd.outputs = [x.decode() for x in lib.macd.outputs]
716
+
717
+
718
+ def marketfi(high, low, volume):
719
+ """
720
+ Market Facilitation Index
721
+ """
722
+
723
+ return lib.marketfi([high, low, volume], [])
724
+
725
+ marketfi.full_name = lib.marketfi.full_name.decode()
726
+ marketfi.type = lib.marketfi.type.decode()
727
+ marketfi.inputs = [x.decode() for x in lib.marketfi.inputs]
728
+ marketfi.options = [x.decode() for x in lib.marketfi.options]
729
+ marketfi.outputs = [x.decode() for x in lib.marketfi.outputs]
730
+
731
+
732
+ def mass(high, low, period):
733
+ """
734
+ Mass Index
735
+ """
736
+
737
+ return lib.mass([high, low], [period])
738
+
739
+ mass.full_name = lib.mass.full_name.decode()
740
+ mass.type = lib.mass.type.decode()
741
+ mass.inputs = [x.decode() for x in lib.mass.inputs]
742
+ mass.options = [x.decode() for x in lib.mass.options]
743
+ mass.outputs = [x.decode() for x in lib.mass.outputs]
744
+
745
+
746
+ def max(real, period):
747
+ """
748
+ Maximum In Period
749
+ """
750
+
751
+ return lib.max([real], [period])
752
+
753
+ max.full_name = lib.max.full_name.decode()
754
+ max.type = lib.max.type.decode()
755
+ max.inputs = [x.decode() for x in lib.max.inputs]
756
+ max.options = [x.decode() for x in lib.max.options]
757
+ max.outputs = [x.decode() for x in lib.max.outputs]
758
+
759
+
760
+ def md(real, period):
761
+ """
762
+ Mean Deviation Over Period
763
+ """
764
+
765
+ return lib.md([real], [period])
766
+
767
+ md.full_name = lib.md.full_name.decode()
768
+ md.type = lib.md.type.decode()
769
+ md.inputs = [x.decode() for x in lib.md.inputs]
770
+ md.options = [x.decode() for x in lib.md.options]
771
+ md.outputs = [x.decode() for x in lib.md.outputs]
772
+
773
+
774
+ def medprice(high, low):
775
+ """
776
+ Median Price
777
+ """
778
+
779
+ return lib.medprice([high, low], [])
780
+
781
+ medprice.full_name = lib.medprice.full_name.decode()
782
+ medprice.type = lib.medprice.type.decode()
783
+ medprice.inputs = [x.decode() for x in lib.medprice.inputs]
784
+ medprice.options = [x.decode() for x in lib.medprice.options]
785
+ medprice.outputs = [x.decode() for x in lib.medprice.outputs]
786
+
787
+
788
+ def mfi(high, low, close, volume, period):
789
+ """
790
+ Money Flow Index
791
+ """
792
+
793
+ return lib.mfi([high, low, close, volume], [period])
794
+
795
+ mfi.full_name = lib.mfi.full_name.decode()
796
+ mfi.type = lib.mfi.type.decode()
797
+ mfi.inputs = [x.decode() for x in lib.mfi.inputs]
798
+ mfi.options = [x.decode() for x in lib.mfi.options]
799
+ mfi.outputs = [x.decode() for x in lib.mfi.outputs]
800
+
801
+
802
+ def min(real, period):
803
+ """
804
+ Minimum In Period
805
+ """
806
+
807
+ return lib.min([real], [period])
808
+
809
+ min.full_name = lib.min.full_name.decode()
810
+ min.type = lib.min.type.decode()
811
+ min.inputs = [x.decode() for x in lib.min.inputs]
812
+ min.options = [x.decode() for x in lib.min.options]
813
+ min.outputs = [x.decode() for x in lib.min.outputs]
814
+
815
+
816
+ def mom(real, period):
817
+ """
818
+ Momentum
819
+ """
820
+
821
+ return lib.mom([real], [period])
822
+
823
+ mom.full_name = lib.mom.full_name.decode()
824
+ mom.type = lib.mom.type.decode()
825
+ mom.inputs = [x.decode() for x in lib.mom.inputs]
826
+ mom.options = [x.decode() for x in lib.mom.options]
827
+ mom.outputs = [x.decode() for x in lib.mom.outputs]
828
+
829
+
830
+ def msw(real, period):
831
+ """
832
+ Mesa Sine Wave
833
+ """
834
+
835
+ return lib.msw([real], [period])
836
+
837
+ msw.full_name = lib.msw.full_name.decode()
838
+ msw.type = lib.msw.type.decode()
839
+ msw.inputs = [x.decode() for x in lib.msw.inputs]
840
+ msw.options = [x.decode() for x in lib.msw.options]
841
+ msw.outputs = [x.decode() for x in lib.msw.outputs]
842
+
843
+
844
+ def mul(real, real2):
845
+ """
846
+ Vector Multiplication
847
+ """
848
+
849
+ return lib.mul([real, real2], [])
850
+
851
+ mul.full_name = lib.mul.full_name.decode()
852
+ mul.type = lib.mul.type.decode()
853
+ mul.inputs = [x.decode() for x in lib.mul.inputs]
854
+ mul.options = [x.decode() for x in lib.mul.options]
855
+ mul.outputs = [x.decode() for x in lib.mul.outputs]
856
+
857
+
858
+ def natr(high, low, close, period):
859
+ """
860
+ Normalized Average True Range
861
+ """
862
+
863
+ return lib.natr([high, low, close], [period])
864
+
865
+ natr.full_name = lib.natr.full_name.decode()
866
+ natr.type = lib.natr.type.decode()
867
+ natr.inputs = [x.decode() for x in lib.natr.inputs]
868
+ natr.options = [x.decode() for x in lib.natr.options]
869
+ natr.outputs = [x.decode() for x in lib.natr.outputs]
870
+
871
+
872
+ def nvi(close, volume):
873
+ """
874
+ Negative Volume Index
875
+ """
876
+
877
+ return lib.nvi([close, volume], [])
878
+
879
+ nvi.full_name = lib.nvi.full_name.decode()
880
+ nvi.type = lib.nvi.type.decode()
881
+ nvi.inputs = [x.decode() for x in lib.nvi.inputs]
882
+ nvi.options = [x.decode() for x in lib.nvi.options]
883
+ nvi.outputs = [x.decode() for x in lib.nvi.outputs]
884
+
885
+
886
+ def obv(close, volume):
887
+ """
888
+ On Balance Volume
889
+ """
890
+
891
+ return lib.obv([close, volume], [])
892
+
893
+ obv.full_name = lib.obv.full_name.decode()
894
+ obv.type = lib.obv.type.decode()
895
+ obv.inputs = [x.decode() for x in lib.obv.inputs]
896
+ obv.options = [x.decode() for x in lib.obv.options]
897
+ obv.outputs = [x.decode() for x in lib.obv.outputs]
898
+
899
+
900
+ def ppo(real, short_period, long_period):
901
+ """
902
+ Percentage Price Oscillator
903
+ """
904
+
905
+ return lib.ppo([real], [short_period, long_period])
906
+
907
+ ppo.full_name = lib.ppo.full_name.decode()
908
+ ppo.type = lib.ppo.type.decode()
909
+ ppo.inputs = [x.decode() for x in lib.ppo.inputs]
910
+ ppo.options = [x.decode() for x in lib.ppo.options]
911
+ ppo.outputs = [x.decode() for x in lib.ppo.outputs]
912
+
913
+
914
+ def psar(high, low, acceleration_factor_step, acceleration_factor_maximum):
915
+ """
916
+ Parabolic SAR
917
+ """
918
+
919
+ return lib.psar([high, low], [acceleration_factor_step, acceleration_factor_maximum])
920
+
921
+ psar.full_name = lib.psar.full_name.decode()
922
+ psar.type = lib.psar.type.decode()
923
+ psar.inputs = [x.decode() for x in lib.psar.inputs]
924
+ psar.options = [x.decode() for x in lib.psar.options]
925
+ psar.outputs = [x.decode() for x in lib.psar.outputs]
926
+
927
+
928
+ def pvi(close, volume):
929
+ """
930
+ Positive Volume Index
931
+ """
932
+
933
+ return lib.pvi([close, volume], [])
934
+
935
+ pvi.full_name = lib.pvi.full_name.decode()
936
+ pvi.type = lib.pvi.type.decode()
937
+ pvi.inputs = [x.decode() for x in lib.pvi.inputs]
938
+ pvi.options = [x.decode() for x in lib.pvi.options]
939
+ pvi.outputs = [x.decode() for x in lib.pvi.outputs]
940
+
941
+
942
+ def qstick(open, close, period):
943
+ """
944
+ Qstick
945
+ """
946
+
947
+ return lib.qstick([open, close], [period])
948
+
949
+ qstick.full_name = lib.qstick.full_name.decode()
950
+ qstick.type = lib.qstick.type.decode()
951
+ qstick.inputs = [x.decode() for x in lib.qstick.inputs]
952
+ qstick.options = [x.decode() for x in lib.qstick.options]
953
+ qstick.outputs = [x.decode() for x in lib.qstick.outputs]
954
+
955
+
956
+ def roc(real, period):
957
+ """
958
+ Rate of Change
959
+ """
960
+
961
+ return lib.roc([real], [period])
962
+
963
+ roc.full_name = lib.roc.full_name.decode()
964
+ roc.type = lib.roc.type.decode()
965
+ roc.inputs = [x.decode() for x in lib.roc.inputs]
966
+ roc.options = [x.decode() for x in lib.roc.options]
967
+ roc.outputs = [x.decode() for x in lib.roc.outputs]
968
+
969
+
970
+ def rocr(real, period):
971
+ """
972
+ Rate of Change Ratio
973
+ """
974
+
975
+ return lib.rocr([real], [period])
976
+
977
+ rocr.full_name = lib.rocr.full_name.decode()
978
+ rocr.type = lib.rocr.type.decode()
979
+ rocr.inputs = [x.decode() for x in lib.rocr.inputs]
980
+ rocr.options = [x.decode() for x in lib.rocr.options]
981
+ rocr.outputs = [x.decode() for x in lib.rocr.outputs]
982
+
983
+
984
+ def round(real):
985
+ """
986
+ Vector Round
987
+ """
988
+
989
+ return lib.round([real], [])
990
+
991
+ round.full_name = lib.round.full_name.decode()
992
+ round.type = lib.round.type.decode()
993
+ round.inputs = [x.decode() for x in lib.round.inputs]
994
+ round.options = [x.decode() for x in lib.round.options]
995
+ round.outputs = [x.decode() for x in lib.round.outputs]
996
+
997
+
998
+ def rsi(real, period):
999
+ """
1000
+ Relative Strength Index
1001
+ """
1002
+
1003
+ return lib.rsi([real], [period])
1004
+
1005
+ rsi.full_name = lib.rsi.full_name.decode()
1006
+ rsi.type = lib.rsi.type.decode()
1007
+ rsi.inputs = [x.decode() for x in lib.rsi.inputs]
1008
+ rsi.options = [x.decode() for x in lib.rsi.options]
1009
+ rsi.outputs = [x.decode() for x in lib.rsi.outputs]
1010
+
1011
+
1012
+ def sin(real):
1013
+ """
1014
+ Vector Sine
1015
+ """
1016
+
1017
+ return lib.sin([real], [])
1018
+
1019
+ sin.full_name = lib.sin.full_name.decode()
1020
+ sin.type = lib.sin.type.decode()
1021
+ sin.inputs = [x.decode() for x in lib.sin.inputs]
1022
+ sin.options = [x.decode() for x in lib.sin.options]
1023
+ sin.outputs = [x.decode() for x in lib.sin.outputs]
1024
+
1025
+
1026
+ def sinh(real):
1027
+ """
1028
+ Vector Hyperbolic Sine
1029
+ """
1030
+
1031
+ return lib.sinh([real], [])
1032
+
1033
+ sinh.full_name = lib.sinh.full_name.decode()
1034
+ sinh.type = lib.sinh.type.decode()
1035
+ sinh.inputs = [x.decode() for x in lib.sinh.inputs]
1036
+ sinh.options = [x.decode() for x in lib.sinh.options]
1037
+ sinh.outputs = [x.decode() for x in lib.sinh.outputs]
1038
+
1039
+
1040
+ def sma(real, period):
1041
+ """
1042
+ Simple Moving Average
1043
+ """
1044
+
1045
+ return lib.sma([real], [period])
1046
+
1047
+ sma.full_name = lib.sma.full_name.decode()
1048
+ sma.type = lib.sma.type.decode()
1049
+ sma.inputs = [x.decode() for x in lib.sma.inputs]
1050
+ sma.options = [x.decode() for x in lib.sma.options]
1051
+ sma.outputs = [x.decode() for x in lib.sma.outputs]
1052
+
1053
+
1054
+ def sqrt(real):
1055
+ """
1056
+ Vector Square Root
1057
+ """
1058
+
1059
+ return lib.sqrt([real], [])
1060
+
1061
+ sqrt.full_name = lib.sqrt.full_name.decode()
1062
+ sqrt.type = lib.sqrt.type.decode()
1063
+ sqrt.inputs = [x.decode() for x in lib.sqrt.inputs]
1064
+ sqrt.options = [x.decode() for x in lib.sqrt.options]
1065
+ sqrt.outputs = [x.decode() for x in lib.sqrt.outputs]
1066
+
1067
+
1068
+ def stddev(real, period):
1069
+ """
1070
+ Standard Deviation Over Period
1071
+ """
1072
+
1073
+ return lib.stddev([real], [period])
1074
+
1075
+ stddev.full_name = lib.stddev.full_name.decode()
1076
+ stddev.type = lib.stddev.type.decode()
1077
+ stddev.inputs = [x.decode() for x in lib.stddev.inputs]
1078
+ stddev.options = [x.decode() for x in lib.stddev.options]
1079
+ stddev.outputs = [x.decode() for x in lib.stddev.outputs]
1080
+
1081
+
1082
+ def stderr(real, period):
1083
+ """
1084
+ Standard Error Over Period
1085
+ """
1086
+
1087
+ return lib.stderr([real], [period])
1088
+
1089
+ stderr.full_name = lib.stderr.full_name.decode()
1090
+ stderr.type = lib.stderr.type.decode()
1091
+ stderr.inputs = [x.decode() for x in lib.stderr.inputs]
1092
+ stderr.options = [x.decode() for x in lib.stderr.options]
1093
+ stderr.outputs = [x.decode() for x in lib.stderr.outputs]
1094
+
1095
+
1096
+ def stoch(high, low, close, pct_k_period, pct_k_slowing_period, pct_d_period):
1097
+ """
1098
+ Stochastic Oscillator
1099
+ """
1100
+
1101
+ return lib.stoch([high, low, close], [pct_k_period, pct_k_slowing_period, pct_d_period])
1102
+
1103
+ stoch.full_name = lib.stoch.full_name.decode()
1104
+ stoch.type = lib.stoch.type.decode()
1105
+ stoch.inputs = [x.decode() for x in lib.stoch.inputs]
1106
+ stoch.options = [x.decode() for x in lib.stoch.options]
1107
+ stoch.outputs = [x.decode() for x in lib.stoch.outputs]
1108
+
1109
+
1110
+ def stochrsi(real, period):
1111
+ """
1112
+ Stochastic RSI
1113
+ """
1114
+
1115
+ return lib.stochrsi([real], [period])
1116
+
1117
+ stochrsi.full_name = lib.stochrsi.full_name.decode()
1118
+ stochrsi.type = lib.stochrsi.type.decode()
1119
+ stochrsi.inputs = [x.decode() for x in lib.stochrsi.inputs]
1120
+ stochrsi.options = [x.decode() for x in lib.stochrsi.options]
1121
+ stochrsi.outputs = [x.decode() for x in lib.stochrsi.outputs]
1122
+
1123
+
1124
+ def sub(real, real2):
1125
+ """
1126
+ Vector Subtraction
1127
+ """
1128
+
1129
+ return lib.sub([real, real2], [])
1130
+
1131
+ sub.full_name = lib.sub.full_name.decode()
1132
+ sub.type = lib.sub.type.decode()
1133
+ sub.inputs = [x.decode() for x in lib.sub.inputs]
1134
+ sub.options = [x.decode() for x in lib.sub.options]
1135
+ sub.outputs = [x.decode() for x in lib.sub.outputs]
1136
+
1137
+
1138
+ def sum(real, period):
1139
+ """
1140
+ Sum Over Period
1141
+ """
1142
+
1143
+ return lib.sum([real], [period])
1144
+
1145
+ sum.full_name = lib.sum.full_name.decode()
1146
+ sum.type = lib.sum.type.decode()
1147
+ sum.inputs = [x.decode() for x in lib.sum.inputs]
1148
+ sum.options = [x.decode() for x in lib.sum.options]
1149
+ sum.outputs = [x.decode() for x in lib.sum.outputs]
1150
+
1151
+
1152
+ def tan(real):
1153
+ """
1154
+ Vector Tangent
1155
+ """
1156
+
1157
+ return lib.tan([real], [])
1158
+
1159
+ tan.full_name = lib.tan.full_name.decode()
1160
+ tan.type = lib.tan.type.decode()
1161
+ tan.inputs = [x.decode() for x in lib.tan.inputs]
1162
+ tan.options = [x.decode() for x in lib.tan.options]
1163
+ tan.outputs = [x.decode() for x in lib.tan.outputs]
1164
+
1165
+
1166
+ def tanh(real):
1167
+ """
1168
+ Vector Hyperbolic Tangent
1169
+ """
1170
+
1171
+ return lib.tanh([real], [])
1172
+
1173
+ tanh.full_name = lib.tanh.full_name.decode()
1174
+ tanh.type = lib.tanh.type.decode()
1175
+ tanh.inputs = [x.decode() for x in lib.tanh.inputs]
1176
+ tanh.options = [x.decode() for x in lib.tanh.options]
1177
+ tanh.outputs = [x.decode() for x in lib.tanh.outputs]
1178
+
1179
+
1180
+ def tema(real, period):
1181
+ """
1182
+ Triple Exponential Moving Average
1183
+ """
1184
+
1185
+ return lib.tema([real], [period])
1186
+
1187
+ tema.full_name = lib.tema.full_name.decode()
1188
+ tema.type = lib.tema.type.decode()
1189
+ tema.inputs = [x.decode() for x in lib.tema.inputs]
1190
+ tema.options = [x.decode() for x in lib.tema.options]
1191
+ tema.outputs = [x.decode() for x in lib.tema.outputs]
1192
+
1193
+
1194
+ def todeg(real):
1195
+ """
1196
+ Vector Degree Conversion
1197
+ """
1198
+
1199
+ return lib.todeg([real], [])
1200
+
1201
+ todeg.full_name = lib.todeg.full_name.decode()
1202
+ todeg.type = lib.todeg.type.decode()
1203
+ todeg.inputs = [x.decode() for x in lib.todeg.inputs]
1204
+ todeg.options = [x.decode() for x in lib.todeg.options]
1205
+ todeg.outputs = [x.decode() for x in lib.todeg.outputs]
1206
+
1207
+
1208
+ def torad(real):
1209
+ """
1210
+ Vector Radian Conversion
1211
+ """
1212
+
1213
+ return lib.torad([real], [])
1214
+
1215
+ torad.full_name = lib.torad.full_name.decode()
1216
+ torad.type = lib.torad.type.decode()
1217
+ torad.inputs = [x.decode() for x in lib.torad.inputs]
1218
+ torad.options = [x.decode() for x in lib.torad.options]
1219
+ torad.outputs = [x.decode() for x in lib.torad.outputs]
1220
+
1221
+
1222
+ def tr(high, low, close):
1223
+ """
1224
+ True Range
1225
+ """
1226
+
1227
+ return lib.tr([high, low, close], [])
1228
+
1229
+ tr.full_name = lib.tr.full_name.decode()
1230
+ tr.type = lib.tr.type.decode()
1231
+ tr.inputs = [x.decode() for x in lib.tr.inputs]
1232
+ tr.options = [x.decode() for x in lib.tr.options]
1233
+ tr.outputs = [x.decode() for x in lib.tr.outputs]
1234
+
1235
+
1236
+ def trima(real, period):
1237
+ """
1238
+ Triangular Moving Average
1239
+ """
1240
+
1241
+ return lib.trima([real], [period])
1242
+
1243
+ trima.full_name = lib.trima.full_name.decode()
1244
+ trima.type = lib.trima.type.decode()
1245
+ trima.inputs = [x.decode() for x in lib.trima.inputs]
1246
+ trima.options = [x.decode() for x in lib.trima.options]
1247
+ trima.outputs = [x.decode() for x in lib.trima.outputs]
1248
+
1249
+
1250
+ def trix(real, period):
1251
+ """
1252
+ Trix
1253
+ """
1254
+
1255
+ return lib.trix([real], [period])
1256
+
1257
+ trix.full_name = lib.trix.full_name.decode()
1258
+ trix.type = lib.trix.type.decode()
1259
+ trix.inputs = [x.decode() for x in lib.trix.inputs]
1260
+ trix.options = [x.decode() for x in lib.trix.options]
1261
+ trix.outputs = [x.decode() for x in lib.trix.outputs]
1262
+
1263
+
1264
+ def trunc(real):
1265
+ """
1266
+ Vector Truncate
1267
+ """
1268
+
1269
+ return lib.trunc([real], [])
1270
+
1271
+ trunc.full_name = lib.trunc.full_name.decode()
1272
+ trunc.type = lib.trunc.type.decode()
1273
+ trunc.inputs = [x.decode() for x in lib.trunc.inputs]
1274
+ trunc.options = [x.decode() for x in lib.trunc.options]
1275
+ trunc.outputs = [x.decode() for x in lib.trunc.outputs]
1276
+
1277
+
1278
+ def tsf(real, period):
1279
+ """
1280
+ Time Series Forecast
1281
+ """
1282
+
1283
+ return lib.tsf([real], [period])
1284
+
1285
+ tsf.full_name = lib.tsf.full_name.decode()
1286
+ tsf.type = lib.tsf.type.decode()
1287
+ tsf.inputs = [x.decode() for x in lib.tsf.inputs]
1288
+ tsf.options = [x.decode() for x in lib.tsf.options]
1289
+ tsf.outputs = [x.decode() for x in lib.tsf.outputs]
1290
+
1291
+
1292
+ def typprice(high, low, close):
1293
+ """
1294
+ Typical Price
1295
+ """
1296
+
1297
+ return lib.typprice([high, low, close], [])
1298
+
1299
+ typprice.full_name = lib.typprice.full_name.decode()
1300
+ typprice.type = lib.typprice.type.decode()
1301
+ typprice.inputs = [x.decode() for x in lib.typprice.inputs]
1302
+ typprice.options = [x.decode() for x in lib.typprice.options]
1303
+ typprice.outputs = [x.decode() for x in lib.typprice.outputs]
1304
+
1305
+
1306
+ def ultosc(high, low, close, short_period, medium_period, long_period):
1307
+ """
1308
+ Ultimate Oscillator
1309
+ """
1310
+
1311
+ return lib.ultosc([high, low, close], [short_period, medium_period, long_period])
1312
+
1313
+ ultosc.full_name = lib.ultosc.full_name.decode()
1314
+ ultosc.type = lib.ultosc.type.decode()
1315
+ ultosc.inputs = [x.decode() for x in lib.ultosc.inputs]
1316
+ ultosc.options = [x.decode() for x in lib.ultosc.options]
1317
+ ultosc.outputs = [x.decode() for x in lib.ultosc.outputs]
1318
+
1319
+
1320
+ def var(real, period):
1321
+ """
1322
+ Variance Over Period
1323
+ """
1324
+
1325
+ return lib.var([real], [period])
1326
+
1327
+ var.full_name = lib.var.full_name.decode()
1328
+ var.type = lib.var.type.decode()
1329
+ var.inputs = [x.decode() for x in lib.var.inputs]
1330
+ var.options = [x.decode() for x in lib.var.options]
1331
+ var.outputs = [x.decode() for x in lib.var.outputs]
1332
+
1333
+
1334
+ def vhf(real, period):
1335
+ """
1336
+ Vertical Horizontal Filter
1337
+ """
1338
+
1339
+ return lib.vhf([real], [period])
1340
+
1341
+ vhf.full_name = lib.vhf.full_name.decode()
1342
+ vhf.type = lib.vhf.type.decode()
1343
+ vhf.inputs = [x.decode() for x in lib.vhf.inputs]
1344
+ vhf.options = [x.decode() for x in lib.vhf.options]
1345
+ vhf.outputs = [x.decode() for x in lib.vhf.outputs]
1346
+
1347
+
1348
+ def vidya(real, short_period, long_period, alpha):
1349
+ """
1350
+ Variable Index Dynamic Average
1351
+ """
1352
+
1353
+ return lib.vidya([real], [short_period, long_period, alpha])
1354
+
1355
+ vidya.full_name = lib.vidya.full_name.decode()
1356
+ vidya.type = lib.vidya.type.decode()
1357
+ vidya.inputs = [x.decode() for x in lib.vidya.inputs]
1358
+ vidya.options = [x.decode() for x in lib.vidya.options]
1359
+ vidya.outputs = [x.decode() for x in lib.vidya.outputs]
1360
+
1361
+
1362
+ def volatility(real, period):
1363
+ """
1364
+ Annualized Historical Volatility
1365
+ """
1366
+
1367
+ return lib.volatility([real], [period])
1368
+
1369
+ volatility.full_name = lib.volatility.full_name.decode()
1370
+ volatility.type = lib.volatility.type.decode()
1371
+ volatility.inputs = [x.decode() for x in lib.volatility.inputs]
1372
+ volatility.options = [x.decode() for x in lib.volatility.options]
1373
+ volatility.outputs = [x.decode() for x in lib.volatility.outputs]
1374
+
1375
+
1376
+ def vosc(volume, short_period, long_period):
1377
+ """
1378
+ Volume Oscillator
1379
+ """
1380
+
1381
+ return lib.vosc([volume], [short_period, long_period])
1382
+
1383
+ vosc.full_name = lib.vosc.full_name.decode()
1384
+ vosc.type = lib.vosc.type.decode()
1385
+ vosc.inputs = [x.decode() for x in lib.vosc.inputs]
1386
+ vosc.options = [x.decode() for x in lib.vosc.options]
1387
+ vosc.outputs = [x.decode() for x in lib.vosc.outputs]
1388
+
1389
+
1390
+ def vwma(close, volume, period):
1391
+ """
1392
+ Volume Weighted Moving Average
1393
+ """
1394
+
1395
+ return lib.vwma([close, volume], [period])
1396
+
1397
+ vwma.full_name = lib.vwma.full_name.decode()
1398
+ vwma.type = lib.vwma.type.decode()
1399
+ vwma.inputs = [x.decode() for x in lib.vwma.inputs]
1400
+ vwma.options = [x.decode() for x in lib.vwma.options]
1401
+ vwma.outputs = [x.decode() for x in lib.vwma.outputs]
1402
+
1403
+
1404
+ def wad(high, low, close):
1405
+ """
1406
+ Williams Accumulation/Distribution
1407
+ """
1408
+
1409
+ return lib.wad([high, low, close], [])
1410
+
1411
+ wad.full_name = lib.wad.full_name.decode()
1412
+ wad.type = lib.wad.type.decode()
1413
+ wad.inputs = [x.decode() for x in lib.wad.inputs]
1414
+ wad.options = [x.decode() for x in lib.wad.options]
1415
+ wad.outputs = [x.decode() for x in lib.wad.outputs]
1416
+
1417
+
1418
+ def wcprice(high, low, close):
1419
+ """
1420
+ Weighted Close Price
1421
+ """
1422
+
1423
+ return lib.wcprice([high, low, close], [])
1424
+
1425
+ wcprice.full_name = lib.wcprice.full_name.decode()
1426
+ wcprice.type = lib.wcprice.type.decode()
1427
+ wcprice.inputs = [x.decode() for x in lib.wcprice.inputs]
1428
+ wcprice.options = [x.decode() for x in lib.wcprice.options]
1429
+ wcprice.outputs = [x.decode() for x in lib.wcprice.outputs]
1430
+
1431
+
1432
+ def wilders(real, period):
1433
+ """
1434
+ Wilders Smoothing
1435
+ """
1436
+
1437
+ return lib.wilders([real], [period])
1438
+
1439
+ wilders.full_name = lib.wilders.full_name.decode()
1440
+ wilders.type = lib.wilders.type.decode()
1441
+ wilders.inputs = [x.decode() for x in lib.wilders.inputs]
1442
+ wilders.options = [x.decode() for x in lib.wilders.options]
1443
+ wilders.outputs = [x.decode() for x in lib.wilders.outputs]
1444
+
1445
+
1446
+ def willr(high, low, close, period):
1447
+ """
1448
+ Williams %R
1449
+ """
1450
+
1451
+ return lib.willr([high, low, close], [period])
1452
+
1453
+ willr.full_name = lib.willr.full_name.decode()
1454
+ willr.type = lib.willr.type.decode()
1455
+ willr.inputs = [x.decode() for x in lib.willr.inputs]
1456
+ willr.options = [x.decode() for x in lib.willr.options]
1457
+ willr.outputs = [x.decode() for x in lib.willr.outputs]
1458
+
1459
+
1460
+ def wma(real, period):
1461
+ """
1462
+ Weighted Moving Average
1463
+ """
1464
+
1465
+ return lib.wma([real], [period])
1466
+
1467
+ wma.full_name = lib.wma.full_name.decode()
1468
+ wma.type = lib.wma.type.decode()
1469
+ wma.inputs = [x.decode() for x in lib.wma.inputs]
1470
+ wma.options = [x.decode() for x in lib.wma.options]
1471
+ wma.outputs = [x.decode() for x in lib.wma.outputs]
1472
+
1473
+
1474
+ def zlema(real, period):
1475
+ """
1476
+ Zero-Lag Exponential Moving Average
1477
+ """
1478
+
1479
+ return lib.zlema([real], [period])
1480
+
1481
+ zlema.full_name = lib.zlema.full_name.decode()
1482
+ zlema.type = lib.zlema.type.decode()
1483
+ zlema.inputs = [x.decode() for x in lib.zlema.inputs]
1484
+ zlema.options = [x.decode() for x in lib.zlema.options]
1485
+ zlema.outputs = [x.decode() for x in lib.zlema.outputs]
1486
+